Triangle-Triangle contact calculation.

- Returns the minimum penetration, which when offset, will remove the intersection.
- Added test cases.
calculateContactTriangleTriangle() updated to check degenerate triangles.

- Updated comments to explain variables and algorithm better.
- Removed unnecessary comments and corrected typo errors.
Removed #define surrounding calculateContactTriangleTriangle, put there
for testing.

- The #defines change the template funtion parameters to actual values.
- Uncommented the template line.
Add Octree DCD contact calculation with unit tests

Added an octree dcd contact calculation that will calculate contact for
all shapes that already have a box contact calculation written. This
also include unit tests to test all of these shape types (capsule,
plane, double sided plane, and sphere).

So this in effect adds octree-capsule, octree-plane,
octree-doublesidedplane, and octree-sphere contact calculation.
Add yaml-cpp include directories fo examples

A couple of the examples (Fem3d, and MassSprings) did not have the
yaml-cpp include directories. When I added OctreeShape to the
CollisionLocation, suddenly the examples needed it (because of
serialization). This just adds the include directories to CMake.
Rename template parameters Octree

Changed the template parameters so they conform to the coding standards
(one upper case letter). The Data template parameter I left as data
since we do that in the vertex data structure.
Reduce copying the nodePath in OctreeDcdContact

To reduce the amount of copying of the nodePath, pass it by share_ptr.
Since all children are basically using the same path, we need to pop the
index as we come back up the tree.
Check OctreePath is valid in OctreeShape::getNode

Check that the lenght of the path given to the Node isn't longer than
the depth of the octree.
Handle VS2010 bug with make_shared as default parameter

Apparently VS 2010 has a bug when passing make_shared as a default
parameter. I was setting the default path in OctreeDcdContact to an
empty one with make_shared. Now, the default parameter is removed, and I
just pass in an empty path.
Fix failing OctreeShape test

Needed to set the root node, to be sure when I retreive it isn't
nullptr.
Fix type warning in BoxCapsuleContactCalculation

BoxCapsuleContactCalculation was using an int as a bool. When it really
should be a bool. This just changes it to the correct type.
Fix VS errors and warnings in OctreeContactCalculation

Visual studio doesn't like the struct initialization used in the tests.
So this removes them, and assigns the struct member values directly.

Also, fixed an error about ambiguous use of the pow function.
Math tool to build an orthonormal basis (i,j,k) from a given normal vector i
Correct name from "Frame" to "Basis" in math tool buildOrthonormalFrame
Renamed OctreeNode::BoundingBoxType typedef

Renamed OctreeNode::BoundingBoxType to AxisAlignedBoundBox to be clear
that this is an "Axis Aligned" bounding box.
Added another test for OctreePath

Added another test of the OctreePath with the OctreeShape. This test
tests a valid non-null path.
Fixed formatting and comments in Octree

Fixed whitepace formatting and added missing doxygen comments to the
OctreeDcdContact, OctreeNode, and OctreeShape.
Change Math::buildOrthonormalBasis API + complete UnitTest

Now takes 3 pointers and checks all the possible cases.
It raises an exception is any pointer is a nullptr
It returns false if i is zero or close to zero, True if it succeeded.
Math::buildOrthonormalBasis takes Eigen::Matrix<T,3,1,VOpt>
Fix cpplint warnings on spaces at end and front of lines.

- In Geometry.h and GeometryTests.cpp