[in progress] Ditch browserify Buffer polyfill

Ditching the full browserify Buffer polyfill in favor of a custom lightweight implementation. 

- Cuts down the browser build size from 43KB to 15.6KB (almost 3 times). 
- Makes the code more consistent — now it always uses Node Buffer methods under Node (e.g. in `readDouble` and `readString` which were previously shimmed), and requires ieee754 module only for the browser build
- Uses HTML5 TextEncoder/TextDecoder for string reading/writing where available (modern Chrome and FF)
- Adds `readFloat`, `readBoolean` and `writeUInt64` methods as a side effect. 
- Makes `readUInt64` and `writeUInt64` actually work (it didn't)

To do:

- [x] add tests
- [x] update docs

Closes #9, closes #8.