Caching support

This adds a new 'cache mode' to sharder that enables to map a consistent amount of bytes into a single shard via the `generate([buf])` method.

Example
```js
 var cacher = require('sharder')({
                           cache: true
                        ,  shards: {
                              1: {}
                            , 2: {}
                          }
                      })

 console.log(cacher.generate(new Buffer([1, 2])))
 // 01000000-0000-0000-0000-000000000102
 console.log(cacher.generate(new Buffer([1, 2])))
 // 01000000-0000-0000-0000-000000000102
```

@rjrodger @chico please review