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.
You shouldn't construct the full `Q` here. It is expensive. Use something like `q = full(F[:Q]); (q * F[:H]) * q'`. The parenthesis will avoid the bug I try to fix in #9170.