First half of UCAMWEBAUTH_RETURN_URL elimination: passing it to Raven.

The second half -- validating the URL we get back -- is trickier.
Remove requirement for UCAMWEBAUTH_RETURN_URL entirely.

It can now be automatically generated from an incoming request and
Django's urlconf.  Django handles validation of the host name by checking
against ALLOWED_HOSTS.

This causes relatively deep code changes because it requires passing the
current HttpRequest a lot deeper into the call stack than it used to go.
When passing an exception through RavenAuthBackend, don't break traceback.

This is a two-character fix with a 17-line test case.
Update doc for newly-optional UCAMWEBAUTH_RETURN_URL.
Stop using URLValidator to validate return URLs.

It's excessively picky, and in particular rejects single-component host
names.  These are permitted by the URI spec, and are generated by
django.test.RequestFactory.  In any case, the next thing we do with the
returned URL is to compare it with one we've generated internally,
which should catch any genuinely invalid URLs.
Don't include user-supplied data in exception message.
Don't set UCAMWEBAUTH_RETURN_URL when testing.

It's no longer required.  Arguably, we should run some tests with it
set to make sure it still works.
Minimal test for UCAMWEBAUTH_RETURN_URL.