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?).
the keys() interface right now just takes an integer that is the number of keys to return, so I wasn't sure exactly how to slide it unless we have a start/end param (which assumes that we can even index the keys).

 I was thinking that we could either change the interface, or the user could be smart about adjusting for bigger than normal scanSizes in their underlying implementation.  Thoughts?