Add SVD-based solver to ridge regression.

I added a solver based on the thin SVD of X to compute the ridge
coefficients. This is much more stable than the cholesky decomposition
for singular matrices.

While in the Ridge regression the Gram matrix becomes nonsingular
because of the regularization, I've come across problems when the
regularization parameter is very small. This pull request remedies,
making the algorithm defined and stable even for the border case
alpha=0.

I took the liberty to change the default algorithm of to this one
(when there are no sample weights).
Remove unnecessary code in ridge svd
BUG: solver was not passed to computational method in Ridge object
Use Cholesky solver by default, but use SVD as fallback

when the cholesky fails.
Use ValueError for non-existant solvers
Merge pull request #1914 from fabianp/ridge_svd

MRG - Add SVD-based solver to ridge regression.
FIX/COSMIT helper to identify target types

* Fixes bugs related to simply checking type(..) equality
* Refactors metrics and preprocessing
* Invalidates mix of sequences of sequences and label indicators in
  metrics
* Invalidates row vectors in metrics
* Fixes bug where single-class target led to incorrect F-score
FIX cannot use set notation for Py2.6
FIX need explicit dtype for array of sequences in numpy 1.3
COSMIT remove redundant target size check

This error is already being raised by check_arrays
FIX numpy 1.3 has no float16; use float32
FIX/TST np.squeeze in numpy1.3 fails with array of sequences
FIX numpy 1.3 throws error with array of arrays
FIX inconsistent cv_scores_ generation for randomized search and re-add example
FIX use Python 2.6-compatible str.format