Make InMemoryCache's set(), mset() and del() return promises

I'm not sure why they don't return promises at the first place. My guess is
for the sake or performance and/or sometimes we don't wait for those functions
to return?

Anyway, we should make them return promises. The performance gained by
creating fewer promises can't justify the problems it will cause, e.g.,
they don't implement the interface defined by CacheInstance, which could be
confusing and bug prone. Plus, people may want to wait for these functions
to return in most cases.
Merge pull request #47 from Obvious/xiao-add-promise

Make InMemoryCache's set(), mset() and del() return promises