would it make sense to export both `codec` and a higher order function that takes an `encoding` object as an argument ?

It might make sense to do something like

```js
function myCodec() {
  var myEncodings = extend(encodings, {
    "myThing": {
      encode: function () {
    
      }, 
      decode: function () {

      }, 
      buffer: false, type: 'myThing'
    }

    return createCodec(myEncoding)
  })
}
```

Then you can create your DB with that codec and set the encoding to be `'myThing'`.

Exposing this `createCodec` function in levelup should hopefully mean copying less code into sublevel.