added Cache::exists() to check key existance in cache
cherry picked RedisCache and redis\Connection from redis WIP branch

commit in redis branch was:
0cd65e7496befb3c4aed86e47257103fea63d329