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
This needs to be the *unit*'s charm URL -- they can differ (service gets set to trigger an upgrade, units set theirs to acknowledge the upgrade request and only then actually change the running charm -- but there *should* be no window of opportunity for bad metrics to be sent in between the url set and the actual upgrade).

Fun detail: the units *won't* have charm URLs when they're first created, you'll have to add them in your tests. Factory-created units might, though? If not, they maybe should?