Update everything and add tests for almost everything 


> Note that last time I checked this depended on https://github.com/substack/testling/pull/47 and the very latest version of `buffer-browserify`.

I needed stream2 in my browser and I was quite surprised to see how outdated this module was. I ended up updating everything since I figured I would get other incompatibility if I didn't. So here it is, the Pull Request of doom. It took me more that 2 full days of boring work so I really hope this doesn't gets pulled aside.

This also adds about 2100 tests that I took from nodecore and I have rewritten the README.md so I contains information about how to use the module (nothing changed here) and how to contribute properly.

**I really hope the no tests days are over and that the maintainers of this module will be strict in the future**.

Also note that I have changed the version to `2.0.0` since this will likely introduce some breaking changes. I have tried to keep a list about whats changed, but as this was mostly no-brainer copypast this most likely incomplete. 

* assert updated
  * minor cleanup, it now depends more on util
* child_process throws
* cluster added and throws
* dgram throws
* dns added and throws
* events updated
  * RemoveListener event
  * module.exports = EventEmitter
  * Constructor call may be required
  * listeners is now always an array copy
* path updated
  * exports.delimiter added
  * exports.isAbsolute added
  * and a few bug fixes
* os-browserify added
* querystring updated
  * encode alias
  * decode alias
  * _requires slice fix in buffer-browserify_
* updated string_decoder
  * checks that the encoding is supported
  * _note CESU-8, UTF-16LE, UCS-2, CESU-8 is not supported, dude to what appears to be a buffer issue_
  * _requires Buffer.isEncodeing fix in buffer-browserify_
* updated timers
  * This now includes a setImmediate shim
* tls added and throws
* tty fixed
  * tty.isatty just returns false
  * ReadStream throws
  * WriteStream throws
* url updated
  * primary performance
* util updated
  * inspect now accept options object
  * isFunction added
  * isObject added
  * isUndefined added
  * isSymbol added
  * isString added
  * isNumber added
  * isNullOrUndefined added
  * isNull added
  * isBoolean added
* updated streams
  * this includes all the stream2 stuff
* internal _shim module added