Improve UMFpack interface

- use lud and lud! methods for the decomposition
- allocate umf_conf and umf_info and use them throughout
- preserve the pointers to the symbolic and numeric factorizations in
  the UmfpackLU object.  Also keep around the decremented
  index/pointer vectors.
Merge remote-tracking branch 'origin/vs/linalg2' into origin-vs-linalg2