Asyncronous interface

@lingyan 

First pass at making storage-lru use an async storage interface.  For backwards compatibility/sync interfaces, users can use the SyncWrapper (should I make this automatic?).
Lets use lowercase `asyncify`, since it is a function, not a constructor.

In addition, could you simplify this a bit, as `_getItem`, `_setItem` is really not necessary.  E.g.
```js
function asyncify (syncObject) {
    return {
        getItem: function (key, callback) {
              callback(null, syncObject.getItem(key);
        },
        setItem: ...,
        ...
    };
}
```