Attempt to fix up issues in bvls

I tried fixing the problem with hard-coded float32, but I don't think it worked.  This PR should probably be discarded, but I'll try to help #3137 along.

```
In [1]: %paste
import numpy as np
from scipy import optimize

x = np.array([-1.7237128E+00,1.8712276E+00,-9.6608055E-01,
                  -2.8394297E-01,1.3416969E+00,1.3757038E+00,
                  -1.3703436E+00,4.2581975E-02,-1.4970151E-01,
                  8.2065094E-01])[:,None]
x = np.column_stack((np.ones_like(x), x))
np.random.seed(12)
y = np.dot(x, [1.8, 5.4]) + np.random.random(len(x))
bounds = None

print optimize.bounded_lstsq(x, y, bounds=bounds)

bounds = [(None, None), (None, 4)]
print optimize.bounded_lstsq(x, y, bounds=bounds)

## -- End pasted text --
(array([ 2.26327324,  5.42102766], dtype=float32), 1.1601593494415283, 2)
(array([ 2.39941931,  4.        ], dtype=float32), 5.379225730895996, 1)

In [2]: x.dtype
Out[2]: dtype('float64')
```

Since the returned dtype is `float32`, I think my changes had no effect.