MeshShape, add createAabbTree
AabbTree, add spatialJoin for creating list of intersecting nodes
Representation, add getGlobalShape and getAabbTree

- getGlobalShape provides a cached version of the shape in global
  coordinates, insofaras it makes sense to refer to the shape in global
  coordinates.
- getAabbTree provides access to the aabb tree collision detection
  acceleration structure
- Add helper function in TriangleMesh to transform vertices and norms
  from a similar Mesh.
- Implement both functions for Deformable, Rigid, and
  ShapeCollisionRepresentations.
TriangleTriangleMesh update for AabbTree

- Uses the Aabb tree to reduce the number of collision checks.
- Uses precomputed global shapes to reduce local-to-global space
transformations.
AabbTreeTests, fix GCC compile bug

- GCC does not expand __FUNCTION__ as a preprocessor string, so it must
be surrounded with '<<'.
Refactor spatialJoin

- Use member functions instead
- Eliminate InnerLoop function
- Return list instead of vector
- Mark Tree::getRoot as const
MeshShape, add pose, aabbTree, and initialMesh
Collision::Representation, refactor to use posed MeshShape

- Remove getGlobalShape, getAabbTree
MeshShape, remove createAabbTree
TriangleMesh, rename setTransformedFrom to copyWithTransform

- renamed similarMesh -> source
MeshShape, refactor updateAabbTree

- Use iterator rather than indexed variable.
TriangleMeshBase, add getTriangleVerticesPositions

- Refactor TriangleMeshTriangleMeshDcdContact to use new function.
Adds standalone doxygen files for device dependencies.
Fixes incorrect PhantomDevice documentation.
Also removes unused headers.
TriangleMeshBaseTest, add unit test for getTriangleVerticesPositions
MeshShape-AabbTree, various changes

- Mark ShapeCollisionRepresentation::update as override
- Update names associated with changed name of CopyWithTransform
  -> update assert messages
  -> update unit test name
- Refactor MeshShape to use getTriangleVerticesPositions
- Negate verification logic for AabbTreeTests.SpatialJoinTest
Merge branch 'master' into feature/aabb-triangleMesh-triangleMesh

Conflicts:
	SurgSim/Collision/ShapeCollisionRepresentation.cpp
	SurgSim/Physics/RigidCollisionRepresentation.h
Fix TriangleMesh Collision unit tests

- Create the AabbTree on MeshShape construction
- Update the MeshShape on ShapeCollisionRepresentation construction
- Remove mesh->global transforms in MeshPlaneContact algorithm
- Modify condition for generating expected intersections in MeshMeshTest
Fix merge-related compilation errors
Add triangleId to Collision::Location.

- Used by TriangleMeshTriangleMeshDcdContact to store the triangleId that
  is part of a collision.