Fixed keyerror for missing password in AuthenticationBackend

Currently _authenticate_by_username raises a KeyError if a username is supplied but a password is not. This patch allows other backends to use a username with a non-password authentication method.