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
Merge branch 'master' into feature/staple-example-add-staples

Conflicts:
	Examples/ExampleStapling/main.cpp
StaplerBehavior, refactor to setRepresentation

- The passed Representation is only parsed for pose, so we use the more
  general setRepresentation.
Staple example, fix bugs

- Previous refactoring missed condition to prevent multiple staples
- Unordered map needs to get second item by value, not const ref
- Contact's second representation type is FixedRepresentation
calculateContactTriangleTriangle performance tweak

- Use Boost::static_vector to allocate space on stack.  static_vector has
  vector's interface but has automatic allocation, i.e. exists for the
  lifetime of the function.
Refactor RigidRepresentation::setCollisionRepresentation to RigidRepBase

- FixedRepresentation needs access to the function as well.
StapleExample, refactor to use setCollisionRepresentation
StapleExample, rename StapleElement flag

- Rename to IsBilateral3DConstrained
StapleExample, improve stability of StapleElement

- Add linear and angular damping to prevent explosive velocities
- Disable gravity on bound staple to avoid spinning
Use the same global location to create localizations for the bilateral
constraint.

- The first penetration point of the chosenContact is used to create the
  localizations for the staple and the arm.