Pinning

`ds.Key` is designed with namespacing/prefixing in mind:

```Go
type datastoreBlockSet struct {
  ...
  prefix ds.Key
}

func NewDBWrapperSet(d ds.Datastore, prefix string, bset BlockSet) BlockSet {
  return &datastoreBlockSet{
    dstore: d,
    bset:   bset,
    prefix: ds.NewKey(prefix),
  }
}

func (d *datastoreBlockSet) prefixKey(k util.Key) ds.Key {
  return d.prefix.Child(string(k))
}
```