DeferredLevelDOWN

This PR is another approach to handling deferred-open and introduces [DeferredLevelDOWN](https://github.com/Level/deferred-leveldown) which is a very simple extension of [AbstractLevelDOWN](https://github.com/rvagg/node-abstract-leveldown) that simply queues operations until it's given a real LevelDOWN object.

The beauty of this approach is that AbstractLevelDOWN already implements the complete API semantics of LevelDOWN, argument checking and all so you even get proper `throw`s where LevelDOWN would throw (such as in the chained batch operations where you give bad args or call out of order).

This is an alternative to #182 but also removes the existing deferred open and should also fix #190 because there's only a single listener for `'ready'` (unless you make ReadStreams in which case there is a listener for each ReadStream&mdash;this is existing behaviour).

PR is against the 'expose' branch, see #193.