Introduce UnitRange argument to eigenfunctions.

This makes it more transparent to call the method that returns a specific range of the eigenvalues and -vectors.

I have also changed the promotions methods to convert to `AbstractMatrix` instead of `Matrix`. This is necessary, e.g. when promoting the element type of a `Symmetric`.