Whitespace.
Add very basic implementation of event system.

Code not cleaned up! Scrappy debug funtimes.
Enable event debugging.
Add benchmark placeholder file.
Move Compositor into parsing/.
Move method up for readability.
Tinkering with logging.
Remove Command stuff;

Now that there are events, this functionality is no longer required.

This simplifies the code and the whole process. It has removed the need to both the Output module and Process class; instead we simply trigger a ':refresh' event. We no longer need to enqueue the keypress, so that has been removed from Input.

On receipt of the :refresh event, each interface outputs directly to the terminal.
Bail earlier if no output to parse.
Remove layering concept;

In reality, interfaces will be refreshed in the order that they were defined (and therefore registered with the event handler.).
Remove Repository stuff;

Since we are only storing interfaces, there is no need for all this infrastructure. Replacing it is a simple class: Persistence. Also, as a side effect of the repository removal, we no longer need all the builder code- we can keep a single class which provides the convenience DSL for the creation of interfaces.

- Moved builder/builder to support/builder
- Remove repositories/ directory.
Be consistent in creation of exception classes.
Stub calls to Terminal.output so we don't actually get output.
Remove Exit class; no longer required.
Change 'require_relative' to 'require' in tests.
Change 'require_relative' to 'require' in app.
Fix reference to Instrumentation::Trace.
For the last time.
Move input/input to support/input.
Remove commented requires, implemented differently.