Adds eig, eigfact, eigvals and eigvecs for Bidiagonal

Addresses #3688
Wrapper for LAPACK.trevc
Provides diag, eig, eigfact eigvals and eigvecs for upper and lower Triangular matrices

Addresses #3688
- Also provides simple wrappers around the full routines for svd, svdfact, svdfact!, svdvals, svdvecs for Triangular
- Adds convert routine from Triangular to dense Matrix
- Clean up bidiagonal Matrix tests
More efficient eigenvector computation for lower Triangular matrices
Clean up eigensystem and singular system solvers
Clean up miscellaneous functions
Add generic multiplication
Fix trevc! wrapper for complex arguments