Abstracting the session storage mechanism

Including a rack.session and redis implementation. The default is
rack.session

This will move large requests that would otherwise blow up when added to
a cookie due to size

This also includes a prototype of the redis datastore which moves the data to redis and stores the hkey id in the session instead