Make `sanitize_redirect` aware of possible proxies.

This commit is intended to make str proxies (such as the one created by
django's `reverse_lazy` urlresolver) safely pass the first quick sanity
check in `sanitize_redirect`. It assumes that if redirect_to exist but
it's not a six.string_types instance, it can have a `decode` method that
will return the valid string.

Based on one of the proposed solutions for this Django ticket:
https://code.djangoproject.com/ticket/18776
Check for None when `sanitize_redirect` returns in `do_complete`.