Move each metric into a separate class.

Instead of the Rack Middleware performing monitoring tasks,
it simply calls Metric.all

A metric is a class that defines a `monitor` method. This
method has the opportunity to fetch statistics and call the
`error(msg)` method to report any problems.

Configuration values are now know to `Metric.config` instead of
the Rack Middleware.