Add context guarantees for `CmCallback`
If I understand things correctly there are currently no guarantees about the GMainContext
the callback runs under.
Initially this should be the context all the initial operations (get, verify homeserver, etc) happen under but later in the program it will be whatever context the user kicks off an async operation that triggers new events.
It would be good if we could guarantee that the context will always be that of cm_client_set_sync_callback
.