ENH: Support LinearOperator as input to svds

This adds support for `LinearOperator` arguments in `scipy.sparse.linalg.svds`. My goal is to perform PCA on sparse matrices. As you know, PCA is SVD on a mean-centered matrix X - μ; the mean-centering is problematic since it destroys sparsity and my matrices don't fit in memory in dense format. Representing X - μ as a composite `LinearOperator` solves this problem.
The singular values returned by `svds` are not sorted, since ARPACK does not necessarily return them as sorted. The initial vector used by ARPACK when v0 is not given is random (from ARPACKs internal rng), so the tests fail randomly