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?).
Have a `callback` in constructor looks a little weird. Better interface to add an optional `onInit` option to `options` for the `callback`. This way, we can potentially add other hook functions into `options`, without changing the constructor interface.