use node-kvstore module

This uses the new [mozilla/node-kvstore](https://github.com/mozilla/node-kvstore) module.

I've added the `kvstore.cache` config option for specifying a backend for the cache. The backend instances are created in `lib/kv.js` and used like:

```js
var kv = require('./kv')

// persistent storage
kv.store.set(key, value, cb)

// ephemeral storage
kv.cache.set(key, value, cb)
```