Api abstraction2

Abstraction of api calls that are storage specific. Hopefully this is a start toward working to @chesles solution in #317. Right now though in order to implement it it requires a rewrite of idb, websql and leveldb adapters and a creation of a generic api in the <code>pouch.adapter.js</code>. For now this pull request will allow us to do task queuing and argument parsing.