Refactorings.

- Remove duplicate tests, add more tests and fix those that remain.
- Add more documentation.
- Remove alias_methods.
- Add force logging.
- Protect against resizing madness;
    If the terminal height or width causes the viewport height and width to
    enter negative numbers, then we fix at 1. Display corruption at this size
    is inevitable, but Vedeu doesn't crash. :-)
- Start dockerizing...
- Revert to `if` because `unless` breaks my brain.
- Don't try to get parent styles when dealing with attribute hashes.
- No longer support #output style (old!).
- Line length reformatting and add more documentation.
- Store current top line for the interface;
    Will enable vertical scrolling in the future.
- Rename coercer_test.rb to coercions_test.rb;
- Add #render method which takes options;
    Primarily, the options will contain :top; stating the current top line in
    the interface.
- Move #to_s into Presentation;
    Note: This has not yet been implemented on Interface yet.
    Also, create alias for #to_s -> #render.
- Add parent attribute to models;
    This allows models to point to their parent model. This is useful primarily
    for colours and styles, since we would like to return to the parent's
    attributes after rendering.
- Move name check to #validate_attributes! method;
    Also, tidy up def_delegators.
- Fix up Helpers#colour and Helpers#style;
    Add more documentation.
    Add tests.
- Modify Terminal.output to take multiple streams;
    Move #clear_last_line into Esc.
- Render now accepts an options hash;
    The only configurable is :top, which sets the top line of the interface. In
    the future this will mean we can scroll up and down through content which
    is longer than the interface's height.
- Add simplistic Cursor class.
- Move registering of refresh event into Buffers.
- Use :nocov: sparingly.