The two Contacts in a contact constraint do not add/subtract the depth.

This change should not affect any MLCP results.

The term in the b-vector for a contact constraint is the violation
due to penetration.
The Contacts know the normal, the position of one side of the contact,
and the violation, but the MLCP only needs to know the normal and
the positions of both sides...which it uses to calculate the violation.

To calculate the b-term, one Contact uses a
positive sign for its violation, and the other uses a negative sign.
As a result, any constant term (e.g., the distance to a plane with the
specified normal) added to both Contacts cancels itself
out.
Furthermore, the meaning of such a distance term is unclear. If one
of the objects is a FixedRepresentation, it would make the most sense
if the plane's distance was defined by its contact position.  On the
other hand, if both representation were rigid, it might make more sense
to put the plane in the middle, or to weight its position based on
their relative masses.  Previously, we used the depth (aka violation)
as the plane's distance, which is not physically correct and so was
confusing.

This commit removes the plane's distance from the contact calculations,
and adds comments explaining the deliberate decision.
The LabJackDevice can now reset the hardware during destruct.

The hardware is designed to continue operation after communications
have closed, e.g., providing outputs.  This commit adds the ability
to reset the hardware, returning it to its default settings.
Note that resetting will cause USB re-enumeration and so will take a
few seconds before communications can be re-opened with the hardware.
Add Modules for OpenSurgSim extensions

Add a Modules directory to OpenSurgSim. This is a place for extensions
to OpenSurgSim, and any subdirectories added to this directory will get
added to the project.
Bugfix in LabJackScaffold determining which timer modes accept outputs.

The visual test now has the ability to test resetting a quadrature
timer.
Add images to the DataGroup
Add setters to NamedData that take rvalues (move)

To help reduce copying (especially with images), add setters to
NamedData that accept rvalues, and move the data instead of copy it.
Remove some duplication in NamedData

Removed some of the duplication in the NamedData class. There was a lot
of duplicate code for looking up the index from a name. So instead, we
use the getIndex member function, which does the same thing.
Add missing documentation to setters in NamedData
Fem1DElementBeam.cppC: clean commented code + fix typo
Merge branch 'fix/fem1DBeamTypo' into 'master'

Clean up commented code + fix typo

Merged-on: https://www.assembla.com/code/OpenSurgSim/git/merge_requests/1139233
Updates comments in FixedRepresentationContact.
Merge branch 'feature/image-data-group' into 'master'

Add images to the DataGroup

+1: Julien Lenoir, haizhouW, Ryan Beasley

Merged-on: https://www.assembla.com/code/OpenSurgSim/git/merge_requests/1137343
Merge branch 'feature/modules-directory' into 'master'

Add Modules for OpenSurgSim extensions

+1: Ryan Beasley, haizhouW, Gughan Sathyaseelan

Merged-on: https://www.assembla.com/code/OpenSurgSim/git/merge_requests/1140713
Reduce code duplication in NamedData setters

Use the index based setter in the name based setters to reduce code
duplication.

Also, add a message to the assert in the name based setters.
Merge branch 'feature/nameddata-rvalue-setters' into 'master'

Allow moving data into NamedData

+1: haizhouW

Merged-on: https://www.assembla.com/code/OpenSurgSim/git/merge_requests/1137963
Merge branch 'fix/contact-d' into 'master'

Contact constraints do not add/subtract the depth to the MLCP b-vector.

+1: Paul Novotny, haizhouW, Gughan Sathyaseelan

Merged-on: https://www.assembla.com/code/OpenSurgSim/git/merge_requests/1121073
Renames LabJack::setReset to setResetOnDestruct.
Merge branch 'feature/labjack-reset' into 'master'

LabJack can reset during destruct, and fixes outputting to timers.

Merged-on: https://www.assembla.com/code/OpenSurgSim/git/merge_requests/1134803
Bug fix

When a graphics representation is added to a group, its
activity/visibility should be the combined effects of the group's
activity/visibility and its own activity/visibility.
Merge remote-tracking branch 'origin/master' into feature/graphics-remove-visibility-property