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
@fwereade I've just fallen into the trap of using invalid data in tests haven't I :(

Maybe the input to this function should be names.UnitTag and charm.URL. Do you think that would be enough or do you think I need validation within this function as well