added chained batch form

For review by @juliangruber, @maxogden, @No9 (and anyone else that wants to get their eyes dirty).

Adds the chained batch form to AbstractLevelDOWN by adding a new AbstractChainedBatch object that is returned if you call an argument-less `batch()`. That object has `put()`, `del()` and `write()` and will default to collecting the elements and submitting them back to `db._batch(array, options, callback)`. So, if your implementing package (level.js, leveldown-gap, memdown) does a proper `_batch()` then it should just be a matter of upgrading to this version of AbstractLevelDOWN and you get the chained batch syntax free.

That's the theory anyway and supposedly what the tests say, I haven't actually put this into use in MemDOWN yet but that'll be interesting.