Improving kv test coverage

* Adds unit tests to kv/local_kv.go and kv/dist_kv.go
* Generalizes gossip network simulation so that it can be used in tests which require gossip networks
* The unit tests for kv/dist_kv found a user permission bug which led to false positives. This is fixed in storage/prefix.go.

I'm brand new to Go, so I would appreciate any advice!
Damn, I think I forgot you'd done unittests here. I'd added some last night as part of changing related code. Yours are better though. Do you think you'll be able to submit this today? I'm going to need to do a rather significant merge.