Add LocalStoreDrain to use in tests

LocalStoreDrain will aggregate the metrics that normally would be logged by LogDrain in a map.

```
Count("user.signup", 1)
Count("user.signup", 1)
Count("user.signup", 2)
```

will generate the following map:
```
map[user.signup:map[count#user.signup=1:2 count#user.signup=2:1]]
```
Minor, but this would be a little better imo:

```go
func (d *LocalStoreDrain) store() map[string]thing {
        if d.Store == nil {
                d.Store = make(map[string]thing)
        }

        return d.Store
}

func NewLocalStoreDrain() *LocalStoreDrain {
        return &LocalStoreDrain{}
}
```

I like it when structs allow you to use zero values that do the right thing.