Fixed #20916 - Added support for a `simple_login` test client method.

`simple_login` takes a user instance and logs you in as that user. You no longer have to manage user credentials in tests.

Ticket: 20916.

Todo:
* [ ] Add docs
Shouldn't this patching happen in the `simple_login()` method? Otherwise, `login()` is affected as well which means it wouldn't reject invalid credentials Am I missing something?