Breaking changes, new features and bug fixes.

* Breaking changes:
  * Take `Readable` parameter in `walk`.
  * Return `EventEmitter` from `walk`.
  * Return `Promise` from `write`.
* Fixes:
  * Stream termination bug in `streamify`.
  * Missing comma after empty objects and arrays in `streamify`.
* New features:
  * Add `reviver` option for `parse` and `read`.
  * Add `space` option for `streamify`, `stringify` and `write`.
* Other:
  * Improve tests.
  * Remove the `debug` option from all functions.
