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.
This produces a `Matrix`, but the original matrix is a `SymTridiagonal`.

I think best possible solution here would be to parametrize `Bidiagonal` on `:U/:L` in the same way that `Triangular` is and then make `Triangular(Symtridiagonal, :L)` return a `Bidiagonal{:L}`. It doesn't have to be done now, but I think the `full` method somehow should return a `SymTridiagonal`