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.