Refactor EIPBootstrapper to the backend
Refactor out the ProviderConfig object retriever.
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.
Use helper to get the ProviderConfig.
Do not redefine signaler signal key.
Fix: use signal's keys instead of qt signals.
Move openvpn_verb to config.flags
Remove unused 'hack' helpers.
Move EIP to the backend.

- Add backend eip management
- Connect gui with new eip signals
- remove old unused code
- remove Qt dependency from backend services.
- use Signaler to emit status/state changes from openvpn
Add changes file for #5349.
Move gateway selection helpers to backend.
Handle trying to kill a non running process.
Remove signaling logs, use err for unknown signal.
Use less confusing signal names.

Renames:
eip_download_config -> eip_config_ready
eip_download_client_certificate -> eip_client_certificate_ready
Improve backend docstrings.

* Update wording to match pep-0257
* Add docstrings for signals emitted by the Backend.
Remove unneeded parent's constructor call.