Groundwork for dense correspondence pipeline

This PR contains general improvements and additions to Menpo that are needed for the correspondence pipeline that will be a follow-up PR.

I've decided to split the work as everything presented here is general and useful outside of the scope of the correspondence framework. It should be straightforward to review all this code in isolation and once we are happy it can be brought in.

The correspondence PR actually won't be very large - this really contains the necessary tooling - all the correspondence package will do is string it all together in an easy to use way.


Wow!!! This looks much nicer in my opinion. Also, it should be easy to define function for other types of mappings, besides 3d to 2d and vice-versa. 

In the more general case, multiplying shapes with `Homogeneous` matrices is be a pretty easy way of removing and adding points to shapes that I had never though of...