Support older node versions via `readable-stream`/`es6-promise`.

Since we make use of the `cork` functionality in `streams3` and `Promise` in node 0.11 both need to be polyfilled for older versions of node. The two new libraries address both issues.

The oldest version of node, 0.8, includes an old verison of npm which cannot handle the "^" symbol in package.json dependencies; include workaround information for this scenario (upgrade to at least 1.4.6).

Updated CI to include the new node versions for testing and updated the documentation to reflect the new changes.

In tests, ensure the error event gets watched for before any writes occur (older versions of node emit `error` on the same tick).