Merge branch 'feature/textured-material' into feature/textured-wound-2

Conflicts:
	SurgSim/Graphics/RenderTests/OsgShaderRenderTests.cpp
Apply local materials to the arm and the wound
Add a list of active representaions in PhysicsManagerState.
Add a list of active constraints to PhysicsManagerState.
preparePhysicsState updates the active representations/constraints.
BuildMLCP updates the Representations mapping.

- PhysicsManagerState::updateRepresentationsMapping() builds the map.
- It is called in the BuildMLCP::update().
- Unit Tests updated accordingly.
BuildMLCP updates the Constraints mapping.

- PhysicsManagerState::updateConstraintsMapping() builds the map.
- It is called in the BuildMLCP::update().
- Unit Tests updated accordingly.
BuildMLCP::update() uses active representation/constraints to iterate.
Refactor Load Shader/Material ... again
Merge branch 'feature/textured-wound' into wip/textured-wound
Merge branch 'feature/textured-wound-2' into wip/textured-wound

Conflicts:
	Examples/ExampleStapling/StaplingExample.cpp
	Examples/ExampleStapling/config.txt.in
	SurgSim/Graphics/RenderTests/OsgShaderRenderTests.cpp
Cleanup
Fix warnings
Merge branch 'master' into feature/textured-wound-in-stapling-demo

Conflicts:
	SurgSim/Graphics/OsgMeshRepresentation.cpp
	SurgSim/Graphics/OsgView.h
Make ApplicationData static in Runtime, so does getApplicationData().

Based on the assumption that SurgSim::Framework::Runtime will be created
before everything else in OSS, the whole system will use
SurgSim::Framework::Runtime::getApplicationData() to retrieve
runtime information about where to load external files.

SurgSim::Framework::Runtime::getApplicationData() asserts on
m_applicationData not being empty.
MeshShape must be valid during doInitialize() procedure

Since mesh in external file will be loaded immediately when file name is
set, MeshShape used by DeformableCollisionRepresentation,
RigidRepresentationBase and ShapeCollisionRepresentation should be valid
at the time those representations are initialized.

If not, an assertion will fail.
Asset::setFileName() will try to load file once called.

1. Within Asset::setFileName(), after m_fileName is updated, the method
   will try to load the file by calling Asset::initialize().

2. Make initialize() and doInitialize() protected now, since they will
   not been called explicitly.

3. Remove unused header.

4. Update documentation.

5. Update log information in Asset::initialize() if file path is empty.

6. Make UnitTest 'AssetTest' a friend class of Asset, so that protected
   APIs can be tested.

7. Update UnitTest for Asset

8. Remove explicit call to Asset::initialize() in UnitTests

   Now, all the UnitTests should reply on Asset::setFileName() to call
   Asset::initialize() instead of calling it explicitly.

   Also, a instance of SurgSim::Framework::Runtime must be present before
   any call to Asset::setFileName().
CppLint warning fix
Rename Asset::Initialize() and Asset::doInitialize()

Asset::Initialize(ApplicationData) -> Asset::load(fileName)
Asset::doInitialize(fileName) -> Asset::doLoad(filePath)
Expose Asset::load() and reserve Asset::setFileName() for serialization

Make Asset::load() public and Asset::setFileName() protected. Places
where used Asset::setFileName() to set and load an external file
should call Asset::load() now.

Asset::Load() will verify the validity of the passed in file name and
call doLoad() in derived classes to do the actual loading.
If load is successful, it will return true. Otherwise, false.
As a side effect, Asset::load() will record the file name in
Asset::m_fileName.

Asset::setFileName() is made protected, to keep Asset's API clean.
Ideally, clients of Asset (and its derived classes) should not call
Asset::setFileName(). This method is for de-serialization purpose only.