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?).
This relies on that the underline storage interface to return `null` or `undefined` for items not in the storage.  Please make sure that is the case for the storage interface you are planning to use.  We should highlight this in README's https://github.com/yahoo/storage-lru#pluggable-underline-storage section.