[MAT-462] Fixup smart pointer usage in routines using lu decomp.

This fixes routines that use lapack::xgetrf() such that they
manage their memory with smart pointers. They also get the new
exception types rdag_{un,}recoverable_error added near the lapack
routine call sites. Unit tests updated to assert the new behaviour.