Add OpenNI device

Add a new device that supports depth sensing cameras, ie the Asus Xtion
Pro. These devices produce color images and depth images.

This commit includes both unit tests and a visual test.
Add GLUT include directory to OpenNIVisualTest + Fix for double to float
conversion warning + Change uint (unrecognized) to unsigned int.
Add comment to OpenNI doxygen page about PATH

On Windows, you need to add the OpenNI2 Redist directory to your PATH in
order for the VisualTest and UnitTest to find the OpenNI dll's. This
change adds a comment to the OpenNI documentation about this.
In the OpenNI device rename "image" to "color"

Renamed the images data group entry from "image" to "color" for the rgb
color image provided by the OpenNI device. This makes the distinction
more clear between the other "depth" image.

Also, clarified a couple of comments about converting OpenNI specific
image values to OSS values.
Split Fem2DElementTriangle local & global computation + make local ones virtual

The local mass/stiffness are now split from the global transformation. And the local computations are now virtual methods.
This allows a derive class to extend the model to the drilling dof by simply overriding the computeLocalMass / computeLocalStiffness to complete the matrices with missing parts in the local frame.
Fix Fem2DElementTriangle membrane mass matrix calculation

The membrane mass matrix is defined per axis (no coupling across axis), but was wrongly integrated in the code, creating coupling between the different axis.
Also the membrane only involves the axis X and Y. The axis Z contribution should come from the plate equation, not the membrane.
The reference to Przemieniecki book "Theory of Matrix Structural Analysis" says that the same mass matrix as axis X and Y can be used for the Z axis, but is not correct and can lead to wrong behaviors.
Update debug levels and message in OpenNI device

Change some debugging levels to SEVERE, since they occur when the OpenNI
camera is unusable. Added some debug info to a couple of asserts.

Also, removed a check of how many devices are connected. This was added
for debug purposes and isn't needed.

Added doxygen comment for the return value os
OpenNIDevice::isInitialized
Remove unneeded libs from OpenNI UnitTests

A couple of libs don't need to be explicitly linked into the OpenNI unit
tests.
Move initialization to doInitialize in OpenNIScaffold

Move the sdk initialization into the thread doInitialize. Also, during
registerDevice, start the thread if it hasn't been started, and wait for
it to be initialized before adding the device. This is required becuase
the SDK must be initialized before a new device can be added.
reset datagroup entry in OpenNI if no data

If no data is read from the OpenNI camera, reset the entry in the data
group to indicate the data is invalid. Note, if OpenNI's readFrame does
not return STATUS_OK, this indicates something is wrong, not that there
is no data.
Add NimbleDevice to the devices doxygen page
Merge branch 'master' into feature/device-openni
Update OpenNI with surgsim_add_* changes

Updated OpenNI to use the new signature for surgsim_add_library. Also
use surgsim_add_executable for the visual test.
Merge branch 'feature/device-openni' into 'master'

Depth camera device using OpenNI

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

Fix bug in Fem2DTriangle membrane mass matrix

+1: Ryan Beasley, Gughan Sathyaseelan, Paul Novotny

Merged-on: https://www.assembla.com/code/OpenSurgSim/git/merge_requests/1203713