Add keymetrics collector

Use a base collector and parser for common webtrends logic

Main differences:

- keymetrics uses a different base url
- keymetrics is per profile which is in the url and so does not need a
  report_id
- the keymetrics api does not aggregate time periods but gives per hour
  by default - this means we don't need to query per period
- The returned data format has different nesting stuff going on

Issues:

 - Currently we take all the data in measures as floats direct from the api
(see the fixture to see what I mean). This is fine for the averages but
not for other data points if we are also writing to the realtime data
type. Floats break the json schema in this case. Not sure what to do
though as we can't convert all the returned data points due to the
average. Should we auto convert unique_visitors?

- There is some odd nesting in the returned data due to a single query
  and the use of the base collector. This makes the base appending to an
  array irrelevant to keymetrics.
Datetimeutil should leave existing datetimes alone
Move more common logic into base