Simplified Promise logic for localStorage driver - closes #307

I updated the whitespace since this revision removed the nested promises, I can put the extra indent back in for the sake of the diff if it's too difficult to read.

Also, I had to add a hook to `test.api.js` to require the Promise lib - once I removed the nested promises, the outer Promise wasn't there to catch an undefined error from the `localforage.ready` stub.
I think you'll need to add this `catch` back into this. The test that you patched is there to make sure the promise is rejected properly I believe.

I think we added the `catch` calls everywhere to make sure errors bubble from the right place... you'll need to add it back in I think to get the tests to pass instead of adding the require?