Webtrends keymetrics

**Depends on https://github.com/alphagov/performanceplatform-collector/pull/97**

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.

That being said! It should work as long as we don't use realtime which it arguably isn't anyway as the data's max granularity is hourly.
This is such a terrifying way of representing a timespan (I know it's entirely them, not us).