Fix for failing linux test.

- IntersectionTest now does not have a triangle at depth=0.5.
Turn material into a plain component, add uniforms and make them accessible
Fix Graphics example
Fixes for GCC
Change forwarding due to an incompatibility with gcc
Add new unit test for virtual functions in conjunction with accessibles
review changes

remove uneccessary dynamic cast
Merge branch 'master' into feature/material-with-uniforms

Conflicts:
	SurgSim/Framework/Accessible.cpp
	SurgSim/Framework/UnitTests/AccessibleTests.cpp
Merge branch 'feature/material-with-uniforms' into 'master'

Make uniforms accesible through the material

Merged-on: https://www.assembla.com/code/OpenSurgSim/git/merge_requests/870463
Add TriangleMesh/TriangleMesh test for triangles penetrating each other by
same depth.
Merge branch 'fix/triangle-mesh-intersection-test' into 'master'

Fix for failing linux test (TriangleMeshTriangleMeshDcdContact.IntersectionTest)

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