PoseIntegrator provides linear and angular velocities.
PoseIntegrator gets a pose which it treats like a delta pose and
integrates.  Now it uses that delta pose and the update rate to
provide velocity (e.g., to be used by VirtualToolCoupler).
Moves PoseIntegrator into DeviceFilters.
Also, PoseIntegrator::initializeInput now saves the pose as the
initial result.
PoseIntegrator caches the inputData indices.
Remove PoseIntegrator::isInitialized.  Not needed.
PoseIntegrator times update...no rate setter/getter for MultiAxisDevice.
Reverts adding velocity entries to MultiAxis input data.
Adds DataGroup::copy and findMap, for non-assignment copying.
If two DataGroups cannot be assigned to each other, but they have the
same names for the same NamedData, then one can now find the map
between the indices, and then copy over just the matching entries.
Merge branch 'master' into feature/poseintegrator-velocities
Factors out common device unit test helper into MockInputOutput class.
Revise StapleElement

1. Remove unused header, forward declaration, member data.

2. Use loading feature from Math::MeshShape instead of loading it within
   StapleElement::doInitialize().
Fix a bug in MeshShape.

computeVolumeIntegrals() needs to be called after m_mesh is updated.
StapleElement needs to look up file through ApplicationData
Refactor handling of Eigen's vector alignment

Insted of using the Eign::DontAlign template option everywhere in our
code, define EIGEN_DONT_ALIGN. This will globaly set the alignment.
Also, put this define under a cmake variable EIGEN_ALIGNMENT.

Also, turn on Eigen alignment so vectorization can be used for a large
performance boost.
Let StapleElement inherit from BasicSceneElement instead of SceneElement

For serialization consider.
Basically, SceneElement (and its derived classes) should only be used as
container of components.
Treat PoseComponent in SceneElement separately.

Since PoseComponent is a Component, when decoding it might get added
to SceneElement's 'm_components' list.

However, SceneElement class has its own m_pose PoseComponent and there's
an assertion to make sure every SceneElement have exactly one
PoseComponent.

Thus, before add SceneElment::PoseComponent into the component list (
which will be processed by XXXManagers), we check to see if there's a
already PoseComponnet in the list. If yes, this
SceneElement::PoseComponent won't be added.
Rename eigen alignment option to EIGEN3_DONT_ALIGN

Keep the cmake option similar to the eigen option (EIGEN_DONT_ALIGN),
just make it EIGEN3_DONT_ALIGN so it groups with the other eigen cmake
options. Also, make it advanced, this usually shouldn't be changed.
Fix RenderTests due to Eigen Alignment change
Remove Eigen::DontAlign in MathUtilities.cpp
Fix passing aligned Eigen types by value

With aligned Eigen types, you cannot pass by value. This commit changes
the couple of cases where we were passing by value to const reference.

Unfortunatly, google tests EXPECT_EQ causes a pass by value, and we
cannot change that. So, switched it to EXPECT_TRUE in the couple of
cases that were causing alignment errors. EXPECT_EQ wasn't printing
useful information in the couple of cases it was used with Eigen types,
so we aren't losing any useful information by making the switch.
Set default to don't align eigen types

Since alignment doesn't appear to be working on all platfroms (VS2012
and VS2013) this changes the default setting to be not aligned. To
enable alignment, simply change the EIGEN3_DONT_ALIGN to off in cmake
for the performance improvement.