Draggable canvas

Important thing in this one is the `Position` in the view. It will be the place we can eventually hook in scaling and things. 

Also, did a major cleanup, and everything is a little more sane now.
Transforming location into Position