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?).
This is more like an `AsyncWrapper` :)

Actually, instead of `SyncWrapper` class, can we make it a function like `asyncify()`, or some better name, which adapts an sync storage interface to async?  Example:
```js
var asyncInstance = asyncify(storageInstance);
```