Implementation of Triangle-Triangle Intersection check.

- Based on the paper by Tomas Moller.
- Given two triangles, it returns a boolean indicating whether the
  triangles intersect each other.
- Test cases are specified as a list in a TriangleTriangleTest class, so
  that they can be re-used by the Triangle-Triangle contact calculation
  tests.
Triangle-Triangle Contact Calculation implementation.

- New implementation of the Triangle-Triangle contact calculation.
- A new TriangleClipper class does the clipping against a given plane. It
  also helps to find the penetration depth given a plane.
- The class and the function (calculateContactTriangleTriangle) are in a
  separate header.
PhysicsManager, add ExcludedCollisionPairs

- Basic implementation of excluding CollisionPairs from the Physics
  pipeline.
- Add unit tests.
ExamplesStapling, exclude collisions

- Exclude collisions between wound and arm
- Exclude collisions between stapler and virtual teeth
DcdCollision, erase only found collision pairs
Updated Triangle-Triangle code to use boost.

- Replaced arrays to boost::container::static_vector.
- Introduced a more functional TriangleHelper and Plnae classes.
- edgeIntersection is refactored as a funciton to avoid code duplicates.
- Changed heraders to inl-h headers. The function declaration is now in
  Geometry.h
Optimized delete vertex in TriangleHelper.

- Reduces the number of copy to the left.
Refactor and rename SolveAndInverse + introduce TriDigonalBlockSolver

- SolveAndInverse is now a virtual base class deriving into 3 classes (DenseMatrix, DiagonalMatrix, TriDiagonalMatrix<BlockSize>)
- Rename SolveAndInverse -> LinearSolveAndInverse
- OdeSolver has now a variable of type shared_ptr<SolveAndInverse>, therefore it does not need its matrix base template parameters (therefore OdeEquation neither)
- DeformableRep is doing more work (update and afterUpdate are generically handled here, while beforeUpdate is handled in derived classes to run some checks)
  DeformableRep::doWakeUp now takes care of the OdeSolver creation, assigning a default LinearSolver for dense matrix (derived classes can always reassign a more specialized solver)
  DeformableRep::setIntegrationScheme allows changes only if the component has not been awoken
- MassSpring1DRep is using a TriDiagonalBlockSolver if possible, it should be using a band solver really...maybe one day !
- Fem1DRep is using a TriDiagonalBlockSolver
- Fix bug in handling Rayleigh damping force calculation in FemRep and MassSpringRep, parameter usingGloblaDamping was using matrix D = alpha.M + beta.K + sum(Element->computeD())
  while we should be using only the alpha.M + beta.K part.
- Apply all changes from removing matrix template parameters
- Revised appropriate Math UnitTest
- Revised the following Physics::unit tests: DeformableRep, FemRep, Fem1DRep, Fem2DRep, Fem3DRep, MassSpringRep (test all functionalities, no more, no less)
- cpplint/doxygen/Debian64/Windows clean warnings/errors
Use buffers for clipping plane + Minor refactoring.

- The TriangleHelper::clipAgainstPlane now uses buffers to store the
  clipped vertices.
- Use Eigen in checkTriangleTriangleIntersection for d1 and d2.
- cpplint fixes.
Renamed Triangle to MockTriangle.

- Removed empty Setup and TearDown functions.
- Renamed rotateByX/Y/ZDegrees functions.
Merge branch 'master' into fix/Triangle-Triangle-New2
Using typedef for Vector3 in checkTriangleTriangleIntersection.
Specify typename keyword for iterator variable declaration.
add -Werror to gcc settings
Warnings as errors on visual studio
Fix doxygen warnings.
DcdCollision, move removing pairs into updatePairs
PhysicsManager, use mutex to protect excluded collision pair container
PhysicsManager and State, various changes

- Reformat findExcludedCollisionPair
- Update documentation for findExcludedCollisionPair
- Mark getExcludedCollisionPairs const
Merge branch 'master' into feature/basic-collisionExclusion