refactor encodings and codec out of util

encodings is a separate file to simplify dependency tree,
since util needs to depend on encodings to create default options correctly.
decouple codec from levelup parts, so that it is possible to supply arbitary encoding strategies
run stream-bench.js on different levelup implementations
keep codec on the db as db._codec, also, support lt, lte, gt, gte
merge
fix one reference to codec
remove bops
DRY error checks a little bit
add isDefined to util
decouple read-stream from encoding and opening stuff
document with comments
merge
Merge pull request #233 from dominictarr/inject

refactor to make encoding strategies injectable