Add an new token backend using Redis

This token driver is similar to the memcached one except that because we
use Redis, stuff are more simpler and works better, including:

    1. Comparing to memcached revoked token doesn't go away as soon
       as we restart Redis, that's because Redis is a persistante data
       store and we also make sure that as soon as token is added to
       revocated list we call Redis save.
       Bug: https://bugs.launchpad.net/keystone/+bug/1182920

    2. Comparing to memcached which have a limit of the size of a key
       value (limit is the page size 1MB by default), Redis doesn't have
       one by default.
       Bug: https://bugs.launchpad.net/keystone/+bug/1242620

    3. There is also a limit per slab class in memcached which mean
       that we are allowed to save only a limited number of tokens
       for example with -m 64 MB -f 1.25 memcached options the slab
       class where pki token endup have a limit of around 3000 elements,
       and when this limit is hit memcached start evicting not recently
       used tokens to make place for new one, which mean that at some
       point user request start failing b/c token is not found (specially
       when using pki token with md5 e.g Horizon), Redis doesn't have a
       limit like this.