Updating interface routines to allow for mechanics-mechanics coupling

Currently:
Only Lagrange Multiplier method and tight coupling (CMISSInterfaceConditionFieldContinuityOperator) implemented
Laplace-Laplace and LinearElasticity-LinearElasticity work fine in 2D and 3D

Working on:
Fixing bug in FiniteElasticity-FiniteElasticity problems.
Penalty method

Tracker item 2271
Mechanics-mechanics coupling

Currently:
Implemented Penalty Method for linear problems
LinearElasticity-LinearElasticity tight coupling (weak form) work fine in 2D and 3D with the CMISSInterfaceConditionFieldContinuityOperator

Implemented Lagrange Multiplier method for non-linear problems
FiniteElasticity-FiniteElasticity tight coupling (weak form) works fine with the CMISSInterfaceConditionFieldContinuityOperator
This is with the PETSc non-linear newton solver with PETSc Jacobian finite difference calculations.

Working on:
Implementing Penalty Method for non-linear problems
Applying boundary conditions on the Lagrange field variables (this will allow us to decouple specific field values between the coupled bodies eg hydrostatic pressure etc)

Tracker item 2271
Merge branch 'master' into TightCoupling
Implemented Penalty Method for non-linear-non-linear coupled problems

Currently:
Implemented Penalty Method for non-linear-non-linear coupled problems
FiniteElasticity-FiniteElasticity tight coupling (weak form) works fine with the CMISSInterfaceConditionFieldContinuityOperator

Working on:
Applying boundary conditions on the Lagrange field variables (this will allow us to decouple specific field values between the coupled bodies eg hydrostatic pressure etc)

Tracker item 2271
Implemented boundary conditions on Lagrange field variable for coupled interface problems

Currently:
Applying boundary conditions on the Lagrange field variable. Tested using uniaxial extension examples.
FiniteElasticity-FiniteElasticity & LinearElasticity-LinearElasticity tight coupling (weak form) problems work fine with the CMISSInterfaceConditionFieldContinuityOperator with both Lagrange Multipier & Penalty Methods
For the moment this has only been used for fixing dofs at the interface and the corresponding dofs on two bodies which are tightly coupled.
The case where boundary conditions are only applied on the Lagrange field variable will need to be tested (this will allow us to decouple specific field values between the coupled bodies eg hydrostatic pressure etc)

Working on:
Testing boundary conditions on only the Lagrange field variable at the interface
Coupling Membrane and Finite-Elasticity

Tracker item 2271
Merge remote branch 'JessicaJor/master' into TightCoupling
Merge branch 'master' of https://github.com/OpenCMISS/cm into TightCoupling
Updating OpenCMISS makefile boundary_condition_routines dependencies

Tracker item 2271
Updating to allow for coupling of dependent field variables whos number of components do not match

For example in problems such as 1)incompressible finite elasticity - 2) Membrane coupling where 1) has an extra dependent field variable component relating to hydrostatic pressure
In general the user will need to set a fixed boundary condition on the interface Lagrange field dof relating to the field components not present in each of the coupled bodies.
This would eliminate the dof from the solver matrices, ie in the example above the hydrostatic pressure term from 1) would be removed.

Tracker item 2271
Merge branch 'master' of https://github.com/OpenCMISS/cm into TightCoupling
Merge remote branch 'adamreeve/cantilever'
Merge branch 'master' of https://github.com/OpenCMISS/cm
Merge branch 'master' into TightCoupling
Merge branch 'master' of https://github.com/OpenCMISS/cm
Updating the automatic creation of a Lagrange field for an interface condition

Tracker item 2271
Merge branch 'master' into tightcoupling

Update coupling interface with style changes,
and fix some other small conflicts due to
whitespace changes.

Conflicts:
	src/equations_set_routines.f90
	src/opencmiss.f90
	src/solver_routines.f90
Update Makefile dependency
Fix up some parameter names in opencmiss.f90

Some had the first letter made lower case when they
shouldn't have.
Routine naming consistency fix for interfaces

SetBasis should be BasisSet for consistency, and because
this is used to identify properties for Python bindings.
Documentation update for interface mesh connectivity routines