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.
Adds LabJack data acquisition device, with limited functionality.

There are multiple models of LabJacks, which use various libraries.
This code supports the U3, U6, and UE9 via LabJackUD (high-level
driver) on Windows, and the U3 and U6 via exodriver (low-level driver)
on Linux or Mac.
This code uses Command/Response communication and supports digital
inputs, digital outputs, and timers (all modes including quadrature and
PWM).
All other functionality is not currently supported (e.g., streaming,
counters, analog in/out, and I2C).
Adds documentation to VisualTestCommon/ToolSquareTest.h.
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
Also search for LabJack's exodriver in /usr and /usr/lib
DcdCollision, erase only found collision pairs
LabJackDevice, pass setter arguments by reference.
LabJackDeviceTest, removes non-test.
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
Add run after build
Optimized delete vertex in TriangleHelper.

- Reduces the number of copy to the left.
LabJackScaffold, use std::array::at to prevent out of bounds access.
Also set device default settings from local struct.
LabJackScaffold (windows only), adds helper function for logging errors.
LabJackDevice passes data in scalars instead of customData.
Also, the scaffold caches the NamedData indices.
Adds unit tests for LabJack-specific checksum functions.
Since they are only used with the low-level driver (i.e., on Linux/Mac),
they were moved into a separate class included by
/linux/LabJackScaffold.cpp.  That way the LabJackScaffold.h is
not dependent on the operating system.
Merge branch 'master' into feature/labjack
Makes LabJackChecksums a namespace.
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.