[MAT-482] Add QR node

This PR adds code which implements the QR decomposition. The decomposition uses LAPACK's `{d,z}geqrf` function to perform the decomposition. The information from `{d,z}getrf` is then manipulated to form matrices `Q` (via `dorgqr()`/`zungqr()`) and `R`. Attempts are made to reuse memory allocated for the decomposition in the returned result opposed to new allocations.

This PR also:
* Adds the template based input checking functionality to the templated `xgeqrf()` and `xxxgqr()`.
* Adds to Java the `OGQRResult` class to handle the graph building of a QR decomposition result.
* Adds the `qr()` function to DOGMA.

Coverage:
Java: 82% (no change)
build/src/jshim 0.7% (down 0.1% as automatic expression generation grows)
build/src/librdag 41.1% (up 0.3%)
src/jshim 53.1% (no change)
src/librdag 85.7% (down 0.2%, due to uncovered `::copy()` etc)
src/librdag/runners 96.3% (up 0.2%).