Major view overhaul!

Vedeu::View can now be subclassed in client views.

Now you don't have to write code to send data to Vedeu::View, just subclass it and implement your own #output method. Inside #output, use the View API to create the view with your data and Vedeu will do the rest.

Rename internal events to convention;

- Internal events should be underscored (:_internal_).
- Add :_clear_ internal event to clear the screen.
- Update README with event related information.
- Add #group attribute to Interface for the purpose of allowing us to only refresh a group of related interfaces.
- Add :_refresh_group_(group) event to only update interfaces belonging to this group (designated by 'group'); see README.
- Add :_refresh_(name) event to only update this interface (designated by 'name'); see README.

Add #north, #east, #south, #west helper methods;

Previously, clients would need to access another interfaces geometry by calling: `interface_name.geometry.top` (left, right, bottom) and then adding or deducting lines or columns to position an interface. Now we can call `interface_name.north` and Vedeu will automatically use the row one line above the position of #top.

A value can also be passed to the compass helper methods which will offset by that value.