Coupling non-linear equation sets using interfaces

Includes commits from the following tracker items by Nancy, Adam and me:

<a href="https://tracker.physiomeproject.org/show_bug.cgi?id=2271">Tracker Item 2271 – Coupled Mechanics-Mechanics</a>. 
- Adds support for coupling non-linear equation sets together using interfaces (coupling linear equation sets already available in the trunk. Linear/non-linear coupling requires multi-physics solvers to be setup).
- Adds FieldContinuity operator implemented for use with both mesh and points connectivity.
- Tested with 2 & 3 coupled region finite elasticity cantilever beam examples (including collapsed elements), using the FieldContinuity operator (in this context, providing a tied contact constraint between regions). Only tested with Lagrange and cubic Hermite bases.

<a href="https://tracker.physiomeproject.org/show_bug.cgi?id=1999">Tracker Item 1999 – Contact Mechanics</a>. 
- Adds FrictionlessContact operator implemented for use with points connectivity.
- Incorporates use of dataprojections to allow point connectivity to be updated during the solve.
- Adds geometric transformation solvers to aid solving of contact mechanics problems.
- Requires linearisation of the contact constraint before implementation/testing can be completed.

This pull request depends on the following pull requests:
- <a href="https://github.com/OpenCMISS/cm/pull/141"> Pull Request 141, Energy Norm</a>  (<a href="https://tracker.physiomeproject.org/show_bug.cgi?id=3497">Tracker Item 3497 – User defined convergence tests for PETSc nonlinear solvers</a>)
- <a href="https://github.com/OpenCMISS/cm/pull/149"> Pull Request 149, Allowing public access to functions in field routines (various tracker items)</a>.