If the user connects to the console, and then disconnects without restarting Duplicati, the UI state would look like it was still registering.
This PR fixes it by clearing the stale data after the registration completes or fails, so the UI does not show an incorrect state.
This PR has a large blast radius because it takes the final step and bumps up the Controller to be fully async.
We have historically done a piece-by-piece update, so all operations were already async but the controller interface was kept synchronous.
With this update, the controller is now fully async and all tests are updated.
Most places where the new C# compiler warns about function names not ending in `Async` were also adressed, giving a massive refactor change.
Functionally, no changes are done.
This PR updates the remove configuration to receive configuration directly on connection, instead of waiting for the server to send it.
This also adds a hibernation setting that will let the server tell the client to stop connecting for a while which can reduce resource consumption at the cost of not being always available.