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.