Add (real) time/rate measures of BasicThread.

Useful to measure the performances of any OSS manager.
Fix doxygen comment
BasicThread: change timing API to return directly the timer
Make Timer class thread safe

+ All access to the m_frameDurations container is locked.
+ All method call lock the mutex at most once.
+ const method CANNOT lock a mutex (mutex needs to be able to change its state), so use of const_cast.
BasicThread return non-const Timer (to potentially clear it) + update unit test
Timer: mutable mutex var + use a shared mutex with unique_lock/shared_lock
BasicThread: access cpu timing and update count without exposing Timer
Reduce error message spam
Caches the shapes used for octree contacts.

Each level of an octree uses a different size for the contact shape.
Shapes are not lightweight, so we cache them for performance reasons.
Merge branch 'fix/collision-less-messages' into 'master'

Reduce error message count

+1: Ryan Beasley, Julien Lenoir

Merged-on: https://www.assembla.com/code/OpenSurgSim/git/merge_requests/1337533
Merge branch 'fix/octree-contact-performance' into 'master'

Cache the shapes used for octree contacts.

+1: Julien Lenoir, Harald Scheirich, Paul Novotny

Merged-on: https://www.assembla.com/code/OpenSurgSim/git/merge_requests/1338053
Fix Timer start thread-safety using unique_lock

Also reset m_clockFails in the mutex section for consistency.
BasicThread: Timer max count to 1000000 and update documentation
Fix BasicThread unit test race condition using isIdle(true/false)
Merge branch 'feature/threadRealTimeMeasure' into 'master'

Add (real) timing measurement for BasicThread

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