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);
});
```
Sure, will add some comments.

If the drivers are not lazy loaded, it could be automated by iterating through a driver's methods which do not start with a `_`. Would be cleaner not to have to hard-code, but I guess since the public API is stable, it shouldn't be too brittle?