Update some tests to use new magnetic parameters factory
Output more data (in generic problem)
* Jacobian assembly times
* Preconditioner assembly times
* Iteration counts
* Solver times
Don't "extern" git version number

Gives a warning, not sure why I put this in the first place...
Add "smoothly varying" initial condition for larger meshes

Needed because the length scale varies depending on the mesh (e.g. cubeoid
much bigger than square mesh).

Pretty hacky...
Add new cross product function to calculate single entry of vector

Because making all those extra vectors for intermediate storage is very
slow.

Also add self tests.
Small improvements to nmag-cubeoid.sh
Temporary fix for empty iteration count etc. vectors in generic problem output
Go back to returning in parameters for get field functions

RVO doesn't seem to work
Add more appropriate initialm functions and use them in jacobian tests

* Also slight improvements to jacobian test outputs
Use individual vectors in dvaluedx calculations

Was using vectors of vectors before but they don't seem to work well with
RVO.
Use "uninitialised" consistently in interpolator

Also fix a mistaken removal of variable mxexch in micromagnetics_element.cc.
Various optimisations of micromagnetics get_jacbobian

* Replace calls to nodal_dimension() with a stored variable ndim.

* Replace many vectors with double arrays
  When the size of the vector is known at compile time we can use this to
  eliminate a LOT of calls to new/delete. Similarly for some matrices.

* Replace calls to cross with "opt_cross"
  Eliminates temporary vector storage of values (I think the compiler can't
  optimise out those variables because they are vectors and so allocated on
  the stack).
Little things

* Slight improvements to control_scripts/nmag-cubeoid.sh
* Comments
* Remove redundant braces
* .gitignore
Add more paranoid checks

* M indicies must be sequential
* M indicies must be > 0
Slightly improved feedback from failed tests in check_jacboians.py
Use elemental dim not nodal dim for size of knot point vector!
More optimisations

* Move some calculations outside of l2 (i.e. test function) loop in Jacobian
  (if they don't need a value of l2)

* Replace interpolator with one that uses c-arrays instead of vectors
  This makes a BIG difference.
Default to not outputing Jacobians (it's slow)