Abstract "graphics engine" for better testability.

+ Create `GraphicsEngineInterface`.
+ Create `GDGraphicsEngine` as implementation of `GraphicsEngineInterface` using the
  GD graphics library.
+ Add config item to control selected graphics engine, defaulting to "GD".
+ Remove calls to GD methods from `LayerRendererInterface` implementations, replace
  with calls to a supplied `GraphicsEngineInterface` implementation.
+ Rename `ColourUtilities` to more generic `CaptchaUtilities`, and rename
  `getColourComponent()` utility method to more generic `getValueFromRange()`.
+ Add error handling to `getValueFromRange()`.
+ Create `CaptchaUtilities::random()` method.
+ Remove direct calls to `mt_rand()` and replace with `CaptchaUtilities::random()`.
+ Fix whitespace inconsistencies.
+ Fix issue with namespaces in `composer.json`.
Fix whitespace inconsistencies only.
Fix whitespace inconsistencies only.
Class documentation.
Remove accidentally committed `error_log()` calls.
Save local variable only.
Whitespace for layout and comments only.
Add tests for all `LayerRendererInterface` implementations.
Add graphics engine details and how to run tests.
Merge pull request #9 from leftclickben/GraphicsEngineAbstraction

Graphics engine abstraction