Closes #1 .  Factorization computed/saved in build_s_matrix

The last step of building the s_matrix is now to factorize it.
When the basis is saved or there are multiple spins, this
factorization is re-used, saving time.  As a side effect, there
is no longer a need for a copy of of the overlap matrix, S_matrix2,
to handle the over-write from srb-diag, which saves a hunk of
memory.