[MAT-462] Added isfinite check to lapack xgesvd.

This adds the templating mechanism and code for checking inputs
to LAPACK routines for the presence of non-finite numerical
values. It uses a struct buffer to allow partial template
specialisation on the args to the lapack functions.
[MAT-462] Add new exception types and make use of them.

librdag gets two new exception types:

librdag_unrecoverable_exception (thrown in the case of an
unrecoverable but non fatal execution path).

librdag_recoverable_exception (thrown in the case of something
that might be objectionable happening, but it is recoverable).

These two exceptions are applied to LAPACK xgesvd as proof of
concept.
[MAT-462] Tests to demonstrate non-finite data causes exception.

This adds tests to demonstrate the a non-finite system matrix
(must be matrix context) causes an exception in the nodes which
call lapack::xgesvd and that this exception correctly translates
up the stack.

It also fixes a potential leak in norm2runner.cc.
[MAT-462] Adds @tparam to document template params.

Adds the @tparam notation to the docs for template parameters in
the lapack.hh header.
[MAT-462] Adds input checker to xgetrf template.

This adds the input checking option to the xgetrf templates and
updates associated code and tests.
[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.
[MAT-462] Fixups to comments and removal of a useless template.

Removes a template that added no value and fixes some comments.
[MAT-462] respond to PR comments. Fix up qNaN and try...catch.

This patch is in response to PR #128 comments. It:

Adds in demo/tests for librdag::isfinite() correctly reporting
that a quiet NaN is indeed not finite.

Reworks the exception throwing chains in a number of runners so
that the only exception caught is of the rdag_recoverable_error
type. All other exceptions should rightly propagate from these
call sites.
Merge pull request #128 from OpenGamma/MAT-462

[Mat-462] Add checking capability for inputs to LAPACK