switch out the accumulator reader for a faster buffer reader

according to some [benchmarks](https://gist.github.com/brycebaril/6913533) from @brycebaril the decode implementation (which comes from @rvagg's code [here](https://github.com/rvagg/leveljs-coding/blob/master/protobuf.js)) is a wee bit faster

downside is it is a breaking API change, but the new API is arguably much simpler

I updated the test suite and documentation

```
20:13 < brycebaril> bryce@x220:/tmp$ time node before.js
20:13 < brycebaril> real    0m1.197s
20:13 < brycebaril> user    0m1.132s
20:13 < brycebaril> sys     0m0.068s
20:13 < brycebaril> bryce@x220:/tmp$ time node after.js
20:13 < brycebaril> real    0m0.860s
20:13 < brycebaril> user    0m0.820s
20:13 < brycebaril> sys     0m0.040s
```