Check for definiteness in generalised eigensolvers. 

Use `I` and `UniformScaling` in eigs. Change default `nev` in `eigs` because different restrictions apply to symmetric and non-symmetric problems. Use `factorize` instead of `lufact` for inverse operations.

The way the generalised eigensolver in `eigs` is setup right now assumes that `B` is positive definite. According the ARPACK manual, it is possible to solve a general problem by some reorganisation of the problem, but for now I just return an error if `B` is not positive definite.

At some point, we should support the general problem, but the ARPACK is an extreme mental challenge to me, so I'll propose that the case with general `B` is not included in this pull request.

cc: @ViralBShah, @jiahao