Remove movement methods from Offset;

My thinking at the moment is there should be a Movement object which is responsible for the changing of offsets, cursors etc. Acting as a facade to these subsystems will hopefully make it easier to orchestrate the changing of an interface or interfaces.
Reorder methods, group like with like;

Also, alter (x|y)_range to include (x|y) and (x|y)_max.
Add ContentArea class;

Responsible for providing the size of the content for a given interface.
Access the interface geometry directly without Forwardable, also;

- Remove movement methods from Cursor.
Add VisibleArea class.
Add Move class.
Scrolling stuff. Still not right.