Merge RigidRepresentationParameters into RigidRepresentation

Merge the parameters stored in RigidRepresentationParameters directly
into RigidRepresentationBase. This makes a bit easier to use the
RigidRepresentation as you can change its properties directly instead of
having to create a RigidRepresentationParameters class first.

Also, simplified setShapeUsedForMassInertia to just setShape to match
the interface in collision.
Find yaml-cpp with ExternalProject_Add

Add a cmake variable called USE_SYSTEM_YAMLCPP. If this is ON, cmake
will try to find an installed version of yaml-cpp on the system. This is
how yaml-cpp has been found in the past. If USE_SYSTEM_YAMLCPP is OFF,
CMake will download yaml-cpp from our repository, configure, build, and
install yaml-cpp to the build directory of OpenSurgSim. This is the
default behavior, and makes it easier for new users, as they don't need
to find our forked version of yaml-cpp.
Merge branch 'master' into feature/merge-rigid-representation-parameters

Conflicts:
	SurgSim/Physics/RigidRepresentation.cpp
Adding a templated Image class to DataStructures

Adding a new templated image class to DataStructures along with its unit
tests. The class is templated on the stored pixel type. Also provides
typedefs for common image types (currently only ImageF for float
images).
Add move constructor and move assignment to Image

Add a move constuctor and move assignement to the Image data structure.
Also, fix some documentation warnings and build errors due to a missing
<array> include.
Remove initialization list initialization for std::array

Remove the initialization list initialization of a std::array member
variable in the Image class. This part of C++11 is not supported yet in
VS2012.
Fold the channels into the size in the Image class

Since the number of channels is really part of the Image size, it is now
folded into the member variable m_size. Previosly, getSize returned a 2
element array that held width and height. Now getSize returns a 3 element
array (width, height, channels).
Merge branch 'master' into feature/merge-rigid-representation-parameters
Move SerializableStapling into ExampleStapling directory

Previously, ExampleStapling exported a library as well as an executable.
The library was named SurgSimExampleStapling (ugh), that was then used
by the seperate SerializableStapling project because it also needs the
StapleElement and StaplingBehavior. This change just moves the
SerialableStapling main file into ExampleStapling. And then the
CMakeLists.txt creates two executables, both including the shared
sources.
Renamed example main cpps to Main.cpp
Moved Example Data directories to sub directories

We were inconsistently putting Data directories in the example
directory, and sometimes putting it in a common Examples/Data directory.
This moves all the Data directories to a sub-directory of each example.

Also, we now consistently copy the Data directory to the binary
directory. Before half the examples did this, and half didn't.
Rename the BouncingBalls example to DroppingBalls

Since they don't bounce, the example should probably be called something
else. Dropping seemed like a decent choice.
Make project name match directory name for examples

The project names for the examples were all pre-pended with Example, ie
ExampleInputVtc, etc. However, the directory names did not start with
Example (except ExampleStapling). Since they all live in the 'Examples'
directory and are located in the Examples folder in Visual Studio, I feel
this 'Example' is redundant, and removed it from the project names to
match the directory names.
Rename Main.cpp files in Examples to the example name

To avoid many files all names Main.cpp, this change renames the Main.cpp
in the examples to the name of the example. For example Stapling.cpp.
Split up the size member variable in the Image class

Split up the size member variable into 3 seperate member variables
(m_width, m_height, m_channels) for clarity.

Cleaned up some whitespace issues.

Made the typedef Imagef instead of ImageF to better follow our
conventions (Vector3d, etc).
The Image class now uses a std::unique_ptr for data

The image class now uses a std::unique_ptr to store the data, instead of
a raw pointer. This makes the class a bit safer, and allows us to use
the unique_ptr's move semantics instead of doing it ourselves.
Add ChannelType typedef to Image class

To clean things up, add a typedef for the getChannel function. This
typedefs the the Eigen Map for conveniance.

Also, add a constant version of the getData function.
the yaml-cpp download now points to a tar.gz

For users that don't have git installed, pointing ExternalProject_Add to
a git repository will fail. It looks like cmake can extract tar.gz files
on its own, so we switch the link from a git repository to a download of
a tar.gz. The file is hosted on the OpenSurgSim Assembla page.
Merge branch 'feature/shared-libs' into feature/yaml-external-project-add
Update external yaml-cpp for shared library builds

When building OpenSurgSim as a shared library, also build yaml-cpp as a
shared library.