Add browserify support, fixes: #3

This was a little tricky to get my head around, but this works in browser with and without browserify, and in node, as expected.

It works because:

1) In node: global is defined, but it is different to `this` within the module. Also `global.global === global`
2) In browser w/ browserify: global is defined, and is the same as window
3) In browser standalone: global is undefined, unless the user has set it manually.