Move SRPAuth to the backend.

* Move methods from SRPAuth to backend: login, logout, change_password.

* Add backend section to hold temporary hack code, needed in the process
  of splitting frontend and backend.

* Replace pyside signals with Signaler signals.

* Move all the signaling and thread launching in SRPAuth inside of
  __impl.

* Move defer handling code (callbacks/errbacks) to the backend and left
  only signal handling in the GUI.

[Closes #5347]
Add changes file for #5347.
Remove PySide as a dependency.

- Use python `object` as a parent class.
- Replace QMutex with a `threading.Lock`
Keep track of backend's connected signals.
Disable wizard if we are logging in.

This avoids signaling conflicts like the provider being setup in the
wizard and being bootstrapped during login.