rpm-ostree: Correctly update fetching and transaction state
rpm-ostree: Unify transaction setup in a single function
rpm-ostree: Correctly set fetching and transaction state
This is needed for proper update detection, especially in the updater:
- Make sure to keep the backend in the fetching state for the entire duration of the check for new updates.
- Make sure to update the state once a transaction is completed, canceled or fails.
Future changes will cache the "update found" state to avoid re-looking for updates every time we setup the backend for each application (discover, notifier, updater).
rpm-ostree: Improve handling of externally started transactions
While Discover (GUI), the notifier and the updater share the same rpm-ostree backend code, a transaction started by one of the three will currently appear as "externally started" to the other ones, as if it had been manually started by a user via the command line for example.
Improve how we detect and handle transactions that the current backend did not start and make sure that we check for in-progress transactions before looking for updates.