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?).
We probably don't want to re-init the records we already scanned before?  `init()` is an expensive function, which parses each item to extract meta information.  Should we just slide the scanSize window to the items that had not been scanned and keep the same size for `this._meta`, instead of increasing the size of `this._meta` at each attempt?