cursorstream - streams2

#1071 upgrades cursorstream to a streams2 implementation. some notes:

- i no longer check the cursor state. you may want to handle that differently.
- uses `self.destroyed` vs `self._destroyed` just like node: https://github.com/joyent/node/blob/master/lib/fs.js#L1538
- i'm not sure if the tests work for me - they just pause among hundreds of `✔ Should handle uncaught error correctly`s. or perhaps you just need to `process.exit()`?

you may also want to add tests for the streams2 portions, such as:

```js
stream.on('readable', function () {
  var doc = this.read(1);
})
```