Add the generalized Schur factorization and make Schur a factorization.

Also fixes factorizations for `Number` types, #2729, by promoting the results to `Array`. I also changed the constructor for `CholeskyDense` to not calling LAPACK. This change makes it possible to make `CholeskyDense` objects without calling LAPACK.