Makes OutputComponent have the same structure as InputComponent.

InputComponent has a member variable that is an InputConsumerInterface.
This commit makes OutputComponent have a member variable that is an
OutputProducerInterface, so that the two classes have a similar
architecture.
Adds assert on input data validity to InputConsumer::handleInput.

We are already asserting on the validity of the initialize data, so we
should assert on handleInput for consistency.
Prevents OutputComponent trying to get uninitialized data from container

LockedContainer<DataGroup>::get will call DataGroup::operator=, which
asserts on the DataGroup being initialized.  So we must wait until
the DataGroup has been initialized before we try to send the data to
the device.  Since an initialized DataGroup object can only be assigned
to by a DataGroup object from which it was initialized (either copy
constructed or the first assignment after default construction), we want
to initialize the DataGroup inside the LockedContainer by the first
setData.  So don't get the data until setData has been called at least
once.
Remove whitespace from end of line in OutputComponent.cpp
Revert "Adds assert on input data validity to InputConsumer::handleInput."

This reverts commit 3ab5cc135575f53dcb9b8338f17b6f29285b6d64.
Removes frivolous assert in OutputComponent::setData.

Also fixes documentation of OutputComponent.
Fix naming style for member variable in OutputProducer.
Fem3DRepresentation::applyDofCorrection initial checkin

- Adds isValidState to check if all position and velocity elements of
DeformableRepresentationState are finite
- Adds deactivateAndReset
- Performs check if new state is valid, and handles by deactivating and
resetting if not
Add unit test for Fem3DRepresentation::applyDofCorrection
Merge branch 'master' into fix/outputconsumer-like-inputconsumer

Conflicts:
	SurgSim/Input/OutputComponent.cpp
	SurgSim/Input/OutputComponent.h
	SurgSim/Input/UnitTests/InputManagerTest.cpp
Remove Scene::getSceneElement

- Multimaps can contain identical keys, whereas getSceneElement only
finds the first key and returns its value.  This is a bug, as
SceneElements can become inaccessible.  We currently do not use
getSceneElement, so we will remove the functionality.
Update signature and documentation of Representation::applyCorrection

- Modified name form Representation::applyDofCorrection.  It wasn't
clear whether the "degrees" were being updated, or whether the
associated position and velocity were being updated.
- Added more deatiled documentation.
- Changed name of 'block' parameter to 'deltaVelocity'
Minor fix, modify includes in Fem3DRepresentation.cpp
Minor fix, clarify comment for XXXRepresentation::deactivateAndReset
Bugfix.  Makes OutputComponent constructor explicit again.
Minor fix, update doxygen for Representation::applyCorrection
Merge branch 'master' into feature/fem3d-applyDofCorrection
Merge branch 'feature/fem3d-applyDofCorrection' into 'master'

Add applyDofCorrection to Fem3D

Merged-on: https://www.assembla.com/code/OpenSurgSim/git/merge_requests/641363
Merge branch 'master' into fix/scene-remove-get
Merge branch 'fix/scene-remove-get' into 'master'

Fix bug related to accessing SceneElements in a Scene

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