initial svds support based on eigs

Added support for sparse truncated SVD based on `eigs`. Keyword inputs are the same as for `eigs`. Returns left singular vectors, singular values, right singular vectors (and also outputs from eigs). Added a test case.
I addition, we'll have to support more than `Float64` and the type should reflect that. The type can probably not be subtype of `AbstractMatrix` either, as the input might not be a subtype of `AbstractMatrix`.