Added support for a metrics collections

Added a metric collection for storing unit metric in the state server

Only support for:

* adding new metrics
* getting lists of unsent metrics
* setting the sent flag
I think it's worth doing, to prevent future changes from potentially mixing up the source of metrics.

Prepend an assert to ```ops``` that the specified unit is alive and has the given charm URL.

```
op = bson.D{
  {"life", "Alive"},
  {"unit": unit},
  {"charmURL": charmUrl},
}

Also add some tests that check this assertion works in the happy path as well as one where the unit does not exist.