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?).
move this inside `Meta.prototype.init` as well.  Actually once you move that logic inside `init`, you don't really need to save the hash object as a property on the meta object.  You just let `generateRecords()` return a variable, and use the return value inside `init()`.  Then it will be automatically cleaned up by JS engine.