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.


Should this be indented so it appears as a codeblock when turned into docs?