[MRG] Fix ZeroDivisionError in LinearRegression on sparse data

This is a fix for #2986 by backporting the fix for scipy/scipy#4142. To do so I embedded a copy of the `scipy/sparse/linalg/isolve/lsqr.py` file from scipy as `_scipy_sparse_lsqr_backport.py` in `sklearn/utils`.

I extended the test in scikit-learn to trigger the issue consistently by using a range of random seeds.