Call library methods only when ready

Defers actual library method calls until driver is loaded and ready. This renders the `ready()` calls unnecessary when using with RequireJS.

```javascript
define(['localforage'], function(localforage) {
    // As a callback:
    localforage.ready(function() {
        localforage.setItem('mykey', 'myvalue', console.log);
    });

    // With a Promise:
    localforage.ready().then(function() {
        localforage.setItem('mykey', 'myvalue', console.log);
    });
});
```

The above RequireJS example from the readme could simply be the following in both cases:

```javascript
define(['localforage'], function(localforage) {
    localforage.setItem('mykey', 'myvalue', console.log);
});
```
It isn't very easy to test the API method stubs inserted by `callWhenReady`, since they are replaced by the driver as soon as it loads. To ensure that they work when the drivers are loaded asynchronously, this runs the entire test suite (except for config tests), but with localforage reloaded before each test, so that it would be initialized again.

This ensures that the synchronous parts of localforage initialization and the API calls in the tests occur first in every test, such that the `callWhenReady` API method stubs are called before RequireJS asynchronously loads the drivers that replace them.

Is that sufficiently clear? If so I'll change the comments to summarize the above.