Add the rest of the tests for backends.py

* The user can authenticate by username or by email,
  so test both.
* They might have a correct username but a wrong
  password, so check that branch as well.  (Testing
  correct email + wrong password seems redundant,
  so I've left that out.)
* To do all this, we need to be able to make users,
  so let's depend on factory_boy and add a
  UserFactory.