Added ArrayBuffer support

Added support for browsers to pass an ArrayBuffer in lieu of a binary string.
This should increase performance slightly on browsers.

Although Node.js supports ArrayBuffer, Buffer should be preferred.