LevelDOWN's chained batch

I added an implementation of LevelDOWN's chained batch with support for encodings and events.

This has a basic test but still needs tests for encodings and events.

Also, I think the `Batch` class should be moved to `lib/batch.js` which then requires a refactor of `dispatchError` since `Batch` needs that too.