Make Metrics Reporters configurable via SPI

Adds a new `metrics` section to the Dropwizard `Configuration`,
permitting users to define `reporters`, based on `ReporterFactory`
implementations.

Any `EnvironmentCommand` will automatically add the configured metrics
reporters to its lifecycle.

Current implementations:

  * `console` - `ConsoleReporterFactory`
  * `csv` - `CsvReporterFactory`
  * `log` - `Slf4jReporterFactory`
Add documentation for metrics reporter factories.

Documentation has been omitted for fields and accessor methods whose
operation are obvious by their signature.
Add tests for ReporterFactory implementations
Don't allow configurable Clock

Application-level metrics are highly unlikely to want a non-default
Clock implementation. Lets remove the Clock configuration and require
users to manually add those reporters to their service if they need
them.
Handle Exceptions during reporter initialization

Metric reporters are nice, but not critical. Lets not fail service
initialization in the event that an Exception occurs (e.g. a remote
service the reporter reports to is not responding).
Add GraphiteReporterFactory

Adds an optional dependency on metrics-graphite.
Add support for GangliaReporter configuration
Add tests for Ganglia and Graphite
Add support for GangliaReporter prefix
Merge pull request #338 from nicktelford/feature/metrics-reporters-spi

Make Metrics Reporters configurable via SPI