Add return types for methods.
Rather than relying on 0 or NilClass, coerce to Boolean.
Add more documentation.
Tab and Shift+Tab to control interface focussing.
Add more documentation.
Add #virtual_x method to complement #virtual_y.
Trace is no longer part of API namespace.
API::Interface#line new accepts a value;

Not passing a block but providing a value creates the necessary content automatically.
Move Trace up require list to make it available sooner.
Use preferred Yard document linking format.
Move .centre, .centre_y and .centre_x into Terminal;

Also add more documentation to this class.
Add .centre_y and .centre_x from Geometry; and document.
Make block on API.views required.
Add more documentation.
Add more documentation.
Some work on Configuration;

- Remove some of the duplicate configuration from Application and into Configuration.
- Change Configuration into a module since we only want one version of it.
- Application no longer needs options to `.start` since this configuration comes from the Terminal.
- Terminal no longer needs a mode as part of `.open` since this configuration comes from Configuration.
- Remove debug stuff from Application.
- Update code around Terminal mode- new `.switch_mode!`, `.cooked_mode?` and `.raw_mode?` methods make all of this easier.
- Reorder require statements closer to that which are needed first.
The colour mode should be sought from Configuration.
Fix tests.
Add more tests.
Move refresh group event registration to own method.