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 think we'd like to parametrize this type on the input element and matrix type (and use capital letters), i.e. something like
```
type SVDOperator{T,S}
data::S
end
```