Add full(F::Factorization) for various kinds of factorization

This PR generalizes `full(::Cholesky)` to various other factorizations: `CholeskyPivoted`, `QR`, `QRCompactWY`, `QRPivoted`, `Eigen`, `Hessenberg`, `Schur`, `SVD`, `LDLt`, and `LU`.  The idea is that `A = full(F::Factorization)` is the opposite of `F = factorize(A)`.  I implemented the reconstruction for all factorizations, apart from `bkfact`---somehow the `.ipiv` encoding is too hard to understand for me, see http://www.nag.com/numeric/FL/nagdoc_fl22/pdf/F07/f07mdf.pdf , section 5.5. 

The patch includes code, tests and a line of documention.
Here it better to write `F.vectors*Diagonal(F.values)/F.vectors`. It is cheaper not to invert the before multiplication the residual from solving the problem is smaller.

You are right that we might want to consider some way of separating out an `Eigen` type constructed from a Hermitian matrix where we know that the eigenvectors are orthogonal.