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

Hello @nicks, @giannic, 

Please review the following commits I made in branch 'xiao-add-promise'.

8e505a92d8980d165b81bd6f3c7570573fe8014a (2014-03-24 09:11:55 -0700)
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.

R=@nicks
R=@giannic