Resolved conflict with Beam3DInFull3DModel

Beam3DInFull3DModel matches the master branch
25d40a8e63b94f0f6b39e7983b19a9aae741fc23
2D triangular element implemented

LinearConstantStrainTriangleStiffnessMatrixBuilder changed to provide
better results.
Added MaterialMatrixBuilder class to handle creation of material matrix.
SubMatrix method added to KeyedSquareMatrix class as it was required by
the MaterialMatrixBuilder.
StrainDisplacementMatrix method of ElementStiffnessMatrixBuilder no
longer requires the location as an argument.  All derived classes have
been updated to reflect this.
Added Strain.LinearStrainZ to Strain enum as it was missing.
Debugging added to Triangle example to help with implementation of
LinearConstantStrainTriangleStiffnessMatrixBuilder
Implementing LinearConstantStressQuadrilateralStiffnessMatrixBuilder

LinearConstantStressQuadrilateralStiffnessMatrixBuilder has been changed
to match LinearConstantStrainTriangleStiffnessMatrixBuilder
implementation.
StrainDisplacementMatrix and ShapeFunctionVector methods of abstract
ElementStiffnessMatrixBuilder now expect IFiniteElementNode as an
argument.  Have updated all inheriting classes.
Added ModelType.Membrane2D to enum

Added ModelType.Membrane2D to the ModelType enum.
Included behaviour for Membrane2D in necessary methods which refer to
ModelType.
Triangle membrane test uses ModelType.Membrane2D
Test for Quad Membrane types
Interface replaces concrete class in method signatures

IFiniteElementNode and IFiniteElement interfaces replace the derived
concrete classes in various method signatures.
Methods added to NodeRepository to locate nodes close to a coordinate
Convenience methods for finding nodes by positions
Removed redundant code in Repository
Enumerate over nodes in model
Fixing configuration to AnyCPU
Additional test for membranes in 3D

Grafted 3D membranes into Truss3D ModelType enum.
Created ModelType.Membrane3D enum value
Refactor: FiniteElement.SupportedBoundaryConditionDegreeOfFreedom added

Refactor: FiniteElement.SupportedBoundaryConditionDegreeOfFreedom added
as an abstract property.
IsASupportedBoundaryConditionDegreeOfFreedom implementation moved to
FiniteElement (was formerly an abstract method of FiniteElement).
Constant stress 2D Quad elements implemented

Gaussian Integration for 1D and 2D integration problems has been
implemented.
KeyedRowColumnMatrix:
- New constructor for copying data from a different KeyedRowColumnMatrix
of different size and different keys
- New constructor for initializing using data and keys provided in lists
- Explicit operator for casting to
MathNet.Numerics.LinearAlgebra.Generics.Matrix<double>
- New method for adding two KeyedRowColumnMatrices
- improved error messages when attempting to retrieve using a
non-existent key
- New method for TransposeThisAndMultiply
- CheckAndAddKeys private method now uses IEnumerable rather than IList

KeyedSquareMatrix
- New constructors for initializing using existing data in matrices
- New methods for Multiply, Add and TransposeThisAndMultiply

StiffnessMatrix
- New constructors for initializing using existing data in matrices
- New methods for Multiply, Add and TransposeThisAndMultiply

ElementStiffnessMatrixBuilder
- Signatures for abstract methods ShapeFunctions and
ShapeFunctionFirstDerivatives were renamed and now return a type of
DenseVector rather than a KeyedRowColumnMatrix
- better error handling when trying to retrieve data
- rotation matrix size is now adapts to whether there is any rotational
or linear degrees of freedom.  This is very much unclean code and a HACK

FiniteElement
- now differentiates between local and global supported degrees of
freedom.
- local and global supported nodal degrees of freedom are now only
created for the supported degrees of freedom, rather than all possible
degrees of freedom.

Linear1DBeam
- DegreeOfFreedom.X added as a supported local boundary condition degree
of freedom

DegreeOfFreedomExtensions
- static class added with method which allows a DegreeOfFreedom to
provide information as to whether it is a linear or rotational degree of
freedom.

LinearConstantStressQuadrilateralStiffnessMatrixBuilder is now
implemented and returns results.  These results are currently
un-verified.

Other classes updated to compile where overridden or abstract methods of
base classes from which they are derived have had their method
signatures altered.
Verified Quad example data

The data output by the Quad example has been verified using a commercial
FEA software package.

Refactoring of ElementStiffnessMatrix to use Guard helper methods.
Renaming of local variable within method of
LinearConstantStressQuadrilateralStiffnessMatrixBuilder
Delete StyleCop data
Refactor DegreeOfFreedomExtensions

Cast DegreeOfFreedom enum to an int when carrying out checks and
operations on it.
Refactor LinearConstantStressQuadrilateral

Node list is now only copied once within method.
Implement GetHashCode on CartesianPoint