Bilinear programming methods for nonconvex quadratic problems