[handler] Replace QDBusPendingCallWatcher with coroutines

Manipulating connections is done using async DBus calls. Currenly we use QDBusPendingCallWatcher to get notified when those finish

All calls trigger the same slot, which them determines what happens based on untyped data that was passed along.

This makes the code quite hard to follow.

By using coroutines we can write the code in a manner that makes the calls appear as if they were sychronous. This allows to reduce some boilerplate and break up the giant slot and move the relevant code to where it logically belongs

That way the code becomes a lot more easy to follow.

This makes use of the QCoro library (https://github.com/danvratil/qcoro) to add coroutine support for QDBusPendingCallWatcher
3 jobs for !124 with work/coros in 2 minutes and 13 seconds (queued for 45 seconds)
merge request