Try all authentication backends to attempt to Auth

Not all authentication backends store the password on the User object,
notibly LDAP and AD authentication.

Update the test case to store a username, and save it so that the
django.contrib.auth.backends.ModelBackend can look it up in the
database. Add a StubBackend to test multiple backends.