TriangleMesh/TriangleMesh DcdContact.

- Add a DcdContact for TriangleMesh/TriangleMesh.
- Add test cases based on a cube mesh.
De-templatization of MeshShape class.

- The templates are removed.
- The TriMesh is now templeted over EmptyData.
- Added copy constructor for TriangleMesh class.
- Modifies TriangleMeshPlaneDcdContact to accomodate these changes.
Update triangleMesh-triangleMesh dcd contact, intersect in meshB space

- Previously intersections were calculated in global coordinates.  This
requires 6 multiplications per triangle-triangle intersection.
- Now instead we perform intersections in meshB's space, so we can avoid
performing an extra 3 multiplications if they do not intersect.
Update triangleMesh-triangleMesh dcd contact, precompute meshB normals

- meshB's normals were previously calculated for each triangle in meshA.
This increases computations because meshB's normals are not dependent
on meshA.
TriangleMesh/TriangleMesh contact bug fixes

- Fixes iterating index and mesh source for vertices
- Removes non-functioning tests and normalizes axis for
makeRotationQuaternion
- Use smart pointer dereferencing instead of *get()
- Adds back MeshShape-inl.h to cmake
- Cpplint fixes
- GCC is unable to deduce the type of inherited template declarations
because they can be overridden with specializations, so we must
explicitly inform the compiler where functions are declared and whether
the tokens are typenames.
- Removed unused class and method from a triangle mesh unit test.
TriangleMesh/TriangleMesh update, index over size_t

- size_t correctly indexes memory on all platforms, whereas unsigned int
is only valid on 32-bit.
TriangleMesh/TriangleMesh update, templated inheritance

- The compiler will not resolve templated inheritance unless explicitly
instructed to.  Previously we achieved this through class name
resolution at the function call, but it is more appropriate to declare
the inherited types in the class definition.
TriangleMesh/TriangleMesh bug fix, normalize calculated normals
TriangleMesh/TriangleMesh various changes

- Simplify doCalculateContact and remove unneeded using declarations
- Fix spacing between comma separated items
- Fix doxygen typo in TriangleMeshTriangleMeshDcdContact
- Remove unneeded vertical whitespace
- Simplify TriangleMeshTriangleMeshContactCalculationTests
- Update doxygen for calculateContactTriangleTriangle
- Add warning if degenerate triangles passed to
calculateContactTriangleTriangle
Merge branch 'master' into feature/TriangleMeshTriangleMeshDcdContact
Merge branch 'feature/TriangleMeshTriangleMeshDcdContact-v3' into 'master'

TriangleMesh/TriangleMesh DcdContact

Merged-on: https://www.assembla.com/code/OpenSurgSim/git/merge_requests/699353