Basic Tree structure, made up of TreeNodes, each of which has TreeData for storing extra information.
StapleElement creates collision representation conditionally + Stores
physics representation.
Create bilateral constraint between StapleElement and Arm/Wound.

- Find the object in the scene which is has most contacts with
  StaleElement.
- Find the contact with largest penetration.
- Create a bilateral constraint at the location stored in
  Contact.penetrationPoints.
Staple example, refactor addition of transfer pose behavior
Staple example, refactor loadMesh to return TriangleMeshBase
Staple example, add virtual staple for candidate staples

- If the virtual staple intersects with a physics representation, then
the newly added staple will be constrained via bilateral3d to what the
virtual staple was intersecting.
Refactor StapleExample, remove indentation in StapleBehavior
StapleExample, minor changes

- Use boost::to_string
- Remove unused m_name in StapleElement
Staple Example, refactor StaplerBehavior algorithms

- Refactor selection algorithms into separate functions
Staple example, fix minor issue with adding staple

- Defer condition for adding uncollidable staple until after checking
whether the collision representation contains a valid physics
representation.
Staple Example, refactor StaplerBehavior

- Give variables simpler, more generic names
- Add warnings when algorithm fails because of collision type
- Declare and initialize on same line
Staple example, use virtual teeth in stapler behavior
Fem3d performance testing, initial commit

- Setup directory structure
- Add deformable wound data
Add Performance testing for Fem3dRepresentation

- The test measures the frame rate over 100 frames, and stores the
average frame rate in an xml key:value pair.
- The timeout rate is 20 Hz, so if a test lasts longer than the expected
duration for 100 frames, it quits prematurely.
- Copied and reformatted the TruthCubeRepresentation from the truth
cube test.
- Tests the fem wound.
- Tests the truth cube for different numbers of subdivisions.
Fem3DPerformanceTest cleanup

- Fix cpplint warning
- Fix narrowing warning
- Remove unused boundary condition function
Fem3DPerformanceTest, fix issue and rename to DivisbleCube

- The cube's physical parameters degenerate as the number of
subdivisions increase, so we scale the length by that number.
- Rename from TruthCube to DivisbleCube.
Fem3DPerformanceTest, add extra tests

- Due to memory limitations when allocating dense matrices, we cannot
have more than 12 subdivisions.
Refactor TestingPhysicsManager
Fem3DPerformanceTest, test for a constant number of iterations
Fem3DPerformanceTest, separately record total duration