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.