Add default options to open, get, put, del and batch

This is a proposal to add default options in all locations where those can occur: `_open`, `_get`, `_put`, `_del` and `_batch` (the `_iterator` function had default options-handling added by PR #32)

Previously an empty object was passed as the options argument which let the implementers of abstract-leveldown deal with the default options on their own. By elevating this to an abstract-leveldown responsibility, we can ensure this is handled evenly across all DOWN's.

All default options listed for leveldown have been added:
- [Default options for `leveldown#open([options, ]callback)`](https://github.com/rvagg/node-leveldown#options)
- [Default options for `leveldown#put(key, value[, options], callback)`](https://github.com/rvagg/node-leveldown#options-1)
- [Default options for `leveldown#get(key[, options], callback`)](https://github.com/rvagg/node-leveldown#options-2)
- [Default options for `leveldown#del(key[, options], callback)`](https://github.com/rvagg/node-leveldown#options-3)
- [Default options for `leveldown#batch(operations[, options], callback)`](https://github.com/rvagg/node-leveldown#options-4)
Good point. If people send stuff like `{ keys: 1 }` it would be nice to treat that as `true`. This would also treat an empty string as `true`, but that would be ok I guess.