Add external forces to DeformableRepresentation

This external force vector is persistent and is helpful to apply any number of punctual load on a model.
Useful for testing as well, applying a load at the end of a beam for example...
Add UnitTest for added feature
Use Localization and matrices K/D in addExternalGeneralizedForce API

The localization is representation specific, so addExternalGeneralizedForce is now virtual pure and concrete in all derived classes.
Note: Fem1DRep and Fem2DRep do not implement it yet, as they don't have a dedicated Localization class yet.

The K/D matrices are the stiffness and damping matrices, both derivatives of the force w.r.t. position/velocity.

cpplint/doxygen/linux32/linux64 clean
Merge branch 'master' of git.assembla.com:OpenSurgSim into feature/externalForceOnDeformable

Conflicts:
	SurgSim/Physics/UnitTests/Fem3DRepresentationTests.cpp
Fix Physics Render Tests

The rigid body physics render tests were not working correctly. This was
caused by a change 13ab10ec2e5b31e8820194c78ac8e58a75e380f4, where the
rigid representation's state was set on doInitialize instead of
doWakeUp. If the pose of a an element being driven by a rigid
representation was set after doInitialize (as is done in these render
tests), it would be overwritten the first time the rigid representation
is updated. This change, put the setting of the rigid representation's
state back in doWakeUp so any changes to the scene element pose before
wakeup are accounted for.
Add Vector6d type

Will be useful in the new API RigidRep::addExternalGeneralizedForce taking a 6d vector and 6d matrices.
We had the Matrix66d, but not the vector equivalent.
+
Fix and clean up unit test

cpplint/linux32/linux64 clean
Change RigidRep::addExternalForce/Torque API to use a generalized force

Instead of have 2 separate methods, we only have 1 taking a generalized force (6D), and 6x6 matrices for stiffness and damping.
Add localization to RigidRep::addExternalGeneralizedForce

An application point other than the mass center will produce the proper torque vector and stiffness and damping matrices.
Add ASSERTION FAILURE in non-implemented method + test

Fem1DRep/Fem2DRep::addExternalGeneralizedForce
Fix localization cast (Fem3d+MassSpring) + assert on result + complete UnitTest
Merge branch 'master' of git.assembla.com:OpenSurgSim into feature/externalForceOnDeformable
Complete Rigid external force API (accessors + overload addExternal...)

Instead of having the method addExternalGeneralizedForce testing the localization for nullptr and treating this case as the mass center application point,
we overload the method to take or not a localization.
Fix bug generalizedStiffness/Damping initialized with wrong order
Use rigid addExternalGeneralizedForce API with localization in VTC

The external force added to the rigid use an application point, so the term torque += leverArm.cross(force) should not be included anymore.
But, to pass the information over to the haptic, this term needs to be present.

The rigid body is doing all the calculation already, but adding it to potentially already existing external forces, so we cannot just retrieve this information, it might not be what we need here.
Therefore, the calculation is redone (with optimization) locally in the VTC (torque update, stiffness/damping update) before being sent over to the haptic.
VTC jacobian formatting
Avoid extra terms computed twice in VTC/Rigid

The extra terms from the lever are computed in the VTC and passed on to the Rigid, instead of calling addExternalGeneralizedForce taking an application point.
Add missing term SkewSymmetricMatrix(force) in VTC's stiffness matrix

c.f. RigidRepresentation::addExternalGeneralizedForce for details about why this term should be there.
Merge branch 'master' of git.assembla.com:OpenSurgSim into feature/externalForceOnDeformable

Conflicts:
	SurgSim/Physics/VirtualToolCoupler.cpp
Merge branch 'feature/externalForceOnDeformable' into 'master'

Add external forces to DeformableRep

Merged-on: https://www.assembla.com/code/OpenSurgSim/git/merge_requests/1045984
Merge branch 'fix/physics-render-tests' into 'master'

Fix Rigid Body Render Tests

+1: Ryan Beasley, haizhouW

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