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);
});
```
I think a good indication of the API method being public is not starting with an underscore, good idea. Works for me. 
--
tofumatt (Sent from mobile)

On July 21, 2014 4:04:09 AM EDT, Beng Hee Eu <notifications@github.com> wrote:
>> @@ -165,6 +165,29 @@
>>          }
>>      };
>>  
>> +    var libraryMethods = [
>
>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?
>
>---
>Reply to this email directly or view it on GitHub:
>https://github.com/mozilla/localForage/pull/212/files#r15157793