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?).
Looks like this method is only used by tests.  If that is the case, can we move it to _meta object, and modify tests to access it via `lru._meta.numRecords()`?