Fixes, tweaks & things.

Improve Trace;
  - Move trace call as not all classes were loaded at this point.
  - Don't log the event as most of the time it is one value (by default, 'call').
  - Colourize primitive classes.
  - Add argument class inspection.
  - Separate and ignore exception classes.
  - Add ignored classes list to decrease verbosity.
  - Don't trace API#log.

Add more documentation.

Fix typo in event name.

Move methods to Repository;
  - #all
  - #find
  - #registered
  - #registered?
  - #reset

Convert Events into a repository module;
  - Remove #events from API.

Update minitest and simplecov versions.

Add #all to Buffers, Cursors and Focus for consistency.

Add line to turn on the running of tests in parallel. Makes things fail.

Add dynamic colour methods to Esc.

Provide ability to build new instances of Interface from Interfaces.

Add #in_focus? to Interface;
  - Returns a boolean indicating whether this interface instance is currently in focus.

Simplify by removing empty check and using #key?

Add #keymaps to view all defined keymaps.

Add debug logging to Configuration::API/CLI and all #method_missing methods;
  - Knowing which options have been set might be useful.
  - If #method_missing is being called, it might be useful to know why.

Compositor should only be called from Refresh.

Fix #virtual_y and #virtual_x and make accessible, add #to_h.

Add load path stuff so that pry works correctly.

Validate attributes on each of the repositories.

Remove redundant @api tags.

Tidy up Keymaps and KeymapValidator.

Trigger `:_standalone_` event for non-interactive applications.

Move exceptions to separate file.

Add/update logging;
  - Only log when focus changes.
  - Add logging for some more activities.
  - Only log the date once every second.
  - Minor message changes for existing log messages.
  - Simplify log output for debounced and throttled events.