Collision::Representation uses BufferedValue to hold the collision map.
Collisions are added to the map in the physics loop, and other threads
may try to read the map, so the BufferedValue provides thread safety.
The BufferedValue publishes in update, so with this change
getCollisions, getCollisionsWith, hasCollision, and isCollidingWith will
be using the collision map as of the most-recent update.
Collision::Representation getCollisions returns the map's BufferedValue.
This way, the caller can create a safe or unsafe ReadAccessor, depending
on which thread they are in.  The utility functions have been removed
since the caller has read access to the map and can call the find and
empty functions directly.
Reduce Representation Generation in OctreeDcdContact

Reduce the number of Collision::Representations generated during
OctreeDcdContact. This caused a slow down due to Components
generating a uuid on construction. Instead re-use the one
Collision::Representation for Octree DCD Conctact.
Merge branch 'master' into fix/collisionrep-bufferedvalue

Conflicts:
	SurgSim/Blocks/VisualizeContactsBehavior.cpp
	SurgSim/Physics/RigidCollisionRepresentation.cpp
Moves collision map publishing to new function called by DcdCollision.
Collision::Representation::update is called before collisions, after
collisions, and also on setLocalPose, setShape, and maybe elsewhere, so
the map was being published too often (performance issues).
With this change, DcdCollision triggers the publish right after the
collisions are determined.
Reverts recent changes to Shape/DeformableCollisionRep::update.
Should have been reverted when the collision map publishing was moved
out of CollisionRep::update.
BufferedValue rewritten to encapsulate the Accessor functionality.
Simplifies the API.  The user is responsible for ensuring that only one
thread calls the publish and unsafeGet functions.
Merge branch 'master' into fix/collisionrep-bufferedvalue
Removes functions from CollisionRep that just operate on the collisions.
Those utility functions hide the use of BufferedValue::unsafeGet,
and can be directly performed by the caller on the return value of
getCollisions.
Improve RepresentationTest check of safe collision buffer.
Also, reverts some recent changes to includes that are no longer needed.
Asset::initialize takes a (const ref of) shared_ptr to const.
The recent serialization of MeshShape so it is-a Asset means that
the short filename should be set in MeshShape and then initialize should
be called passing in the runtime's ApplicationData.
Runtime::getApplicationData returns a shared_ptr to const, so that is
what initialize should accept.
Asset::initialize takes a const ref to ApplicationData.
The function uses the ApplicationData, so the caller shouldn't be
required to wrap it in a shared_ptr.  This signature is simpler and more
descriptive even if the caller already has a shared_ptr to the data.
Removing prefix in shaders
Fix win64 warnings

- Switch most unsigned int -> size_t
- Switch some int -> ptrdiff_t
- Update stack "new" operators in math unit tests to have sufficient
space to fix alignment.
Connect Light to groups
Fix printf warnings

- Use length specifier "z" for size_t type and "t" for ptrdiff_t.
Fix signed/unsigned comparisons

- Comparisons between size_t/ptrdiff_t require special handling.  The
size_t is strictly larger than ptrdiff_t, so if ptrdiff_t > 0, then we
can safely convert it to size_t.
Fix Timer unit test, check for clock fails before using results.
Move lightsouce from builtin gl to explicit uniform
Modify size_t to double casting

- For consistency, cast the result of the arithmetic, rather than cast
the size_t first.