[MAT-426] Add in the  izy template headers.

This adds the majority of the headers allowing access to OG-Izy
with view of implementing PTS.
[MAT-426] Adds in wiring for {a,}cos()

This adds in the plumbing for acos() and cos() nodes and the
tests in DOGMA.
[MAT-426] Add jinja2 templating to infix op runner.

The infix operation runner templates need flow control adding, to
do this the template is converted to use jinja2.
[MAT-426] add times() test and patch in non-running tests.

Adds the times() node and does a full test for it.

Patches CMakeLists.txt to ensure tests that weren't included now
are.
[MAT-426] Adds in rest of OG-Izy.

This adds in the rest of the OG-Izy header and partial template
specialisation required to access OG-Izy in a domain invariant
manner.
[MAT-426] Added asinh node and moved method ordering to alphabetical

This adds the asinh() node and switches the lists to alphabetical
ordering to make locating nodes easier.
[MAT-426] Added atan() and exp()

Adds in the atan() and exp() functions.
[MAT-426] Added rdivide into generator and more trig nodes.

Add in the rdivide() function to the generator and the sin(),
sinh(), tan() and tanh() nodes.
[MAT-426] Add test code for bsx infix ops

Adds in the test code and generator for binary singleton expansion
operations.
[MAT-426] Started work on the generator for function tests.

Initial work for the code generator which will generate the unit
tests for the pure maths functions.