Fix some issues related to eigvals

- Pass arguments to eigvals to eigvals!, so that eigvals(A, irange)
  and eigvals(A, vl, vu) work as described in the docs
- Restrict eigvals!/eigfact! to real symmetric/Hermitian or complex
  Hermitian matrices. Previously we allowed these methods to be called
  on complex symmetric matrices, which did not give correct results.