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
Let's restructure the state document of this a bit. We'll likely receive metrics (bulk API) and sent upstream in batches. So maybe something like: 

type metricBatch struct {
 Metrics []metricDoc
 Sent bool `bson:"sent"`
 Envuuid string `bson:"envuuid"`
}

type metricDoc {
 Uuid string `bson:"_id"`
 Key string `bson:"key"`
 Value string `bson:"value"`
 Unit string `bson:"unit"`
 CharmUrl string `bson:"charmurl"`
 Time time.Time `bson:"time"`
 Credentials []byte `bson:credentials"`
}