WIP: Capture per-feature counts for snapshot

This isn't quite finished. I'm tempted to wait until @domdere has finished with adding a new metadata file and storing the values on save once. Unless we think this is worth doing sooner.
```implicit def MapDecodeJson[V](implicit e: DecodeJson[V]): DecodeJson[Map[String, V]] =`

:(