Be more consistent.
Viewport work;

- Allow cursor/offset to extend the content height and width.
- Fix weird bug which caused line hopping.
- Add some very basic tests.
- Add more documentation.
Move content of Area class into Geometry.