Store our sessions inside of redis

* Use msgpack to serialize the sessions for more compact
  storage and for faster serialization/deserialization
* Move the session cycling support into our RedisSessionStore
* Expire our redis sessions after 12 hours, but renew the session
  on every interaction with Warehouse
Move our random token support into warehouse.utils
Use warehouse.utils.random_token for our CSRF tokens