Split MemoryCache into sync (api compatible with $cacheFactory) and
async (returns promises- which allow for more advanced async caching
implementations).