Return the stream as it is useful for testing and debugging;

- Update tests to reflect new behaviour.
Interface should not call Compositor directly.
Fix colour palette for default colour.
Reduce duplication.
Convert Esc and Cursor to purely functional modules;

This way they cannot be accidentally initialised.
Massive refactor! (Interfaces have Queues!)

- Interface now has an #update method which dequeues the buffer, returning the contents. Each buffer is the interface’s own Queue.
- On interface creation, a blank buffer is created with the user’s preferred foreground and background set.
- Output.render now requests each interface’s buffer and outputs it to the terminal.
- Remove #initial_state - Output.render will get the interface’s initial state.
- Process.evaluate now calls the Compositor with the result.
- Compositor now enqueues the composition onto the interface’s own queue.
- Remove Renderer - no longer required.
- InterfaceRepository discards any empty streams.
- Update tests to reset the InterfaceRepository to prevent buffers being filled up with last test’s output.
Move test files into correct places.