Custom encodings cleanup

Wouldn't mind an eye or two over this before I merge and publish. Shouldn't be anything really changed from #149 except for some minor style and redundancy fixes in levelup.js but util.js has a bit more serious work done where I've removed the now-redundant `encoders` and `decoders` and merged the difference into the new `encodings` stuff.

Tests pass, I just need a code review to make sure I'm not overlooking something silly.