Adds DeviceInterface function to clear InputConsumers and OutputProducer

These function can be called to ensure the device object will not
attempt to pullOutput or pushInput to the rest of the scene.  Otherwise,
it is possible for a device to attempt to access a consumer or
producer that has already destructed.

Also, these functions are called in the destructor, which means the
mutex lock will be used to keep the removals threadsafe prior to actual
destruction.
Adds unit tests for clearInputConsumers & clearOutputProducer.
Merge branch 'master' into fix/device-clear-consumers
Better unit test for CommonDevice::clearOutputProducer.
Merge branch 'master' into fix/device-clear-consumers
Merge branch 'fix/device-clear-consumers' into 'master'

Adds function to clear consumers of (and producer to) a device.

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