Fixed bug with p=0: Now uses SparseDirectUMFPACK for lowest order, which matches with how the block preconditioner treats the lowest order blocks. Also fixed some alignment, but more to be done there later.