Add django helper views/signals.

Add a suitable oauth callback view, and a signal that can be
hooked up for after authentication.

Also create a mixin that can be used with django CBV, enabling
auth-and-forget behaviour, with automatic reauthorisation after
timeout.