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.

What I have so far: working truncated SVD on `LinearOperator`, returning either the smallest or largest singular values.

What doesn't work: passing an initial vector `v0` to `svds`. This reports `0-th dimension must be fixed to 18 but got 21` and crashes with

```error: failed in converting 10th argument `workd' of _arpack.dsaupd to C/Fortran array```

It seems like we have to pass a differently-shaped `v0` because we can't transpose a `LinearOperator`. Is it be acceptable to not support this for `LinearOperator` input?
Typo, note -> not? But why not? It looks like the code paths are the same?