Refactor 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]