Add redis session support

Implementation taken from here - http://flask.pocoo.org/snippets/75/
Reauth controller

Reauth controller is triggered by a push from sign-on-o-tron. After
validating the request, all sessions associated with a user are deleted.
Set redis session expiry time to 2 hours

This is to match signon expiry time to minimise the cases where a signon
user session has expired, but the admin app user session has not
expired. This leads to 403s when we request data from stagecraft, which
will be caught, but the session length being a similar time will avoid
this in most cases.
Merge pull request #20 from alphagov/reauth_wip

Add redis sessions and reauth to admin app
Fix redis sessions

Gunicorn does not call the `start` method, so the session config is not
picked up. We may want to change the convention and have an entry point
that is shared between development and production modes of running the
app, but this change should quickly fix the redis sessions that are
causing issues
Merge pull request #29 from alphagov/fix-redis

Fix redis sessions
start redis on travis to fix tests
Add details of redis dependency to readme
Merge pull request #30 from alphagov/redis-on-travis

Redis on travis
Set session rather than stub context so we are free to refactor

also remove httmocks - they are causing tests to hang so I
am going to be explicit outside of status and patch things directly
Tests for new signed in method
Add a signed in method
Refactor - signed in separated out of template context

template context is a better name. Stuff for all templates (base and
nav) is in base template context. Routes build there own context. If
signed in they have access to the admin client.
Add test for handling 403s

remove unnecessary patch
Add code to handle 403s