adapter: Carefully update DisabledUUIDs vs UUIDs

During profile disable, update the DisabledUUIDs first such that
external components can distinguish this case from the profile-not-ready
(e.g. crash) case.

During profile enable, the opposite logic applies: the UUIDs should be
announced first and only afterwards can DisabledUUIDs be updated.

The approach is rather limited because it doesn't correctly handle
situations where the DisabledUUIDs property combines both operations
(enabling and disabling of profiles). However, this should be rarely
used in practice.
adapter: Add API to mark profiles as unavailable

Being unavailable means the profile is not usable, such as HFP when
oFono is not running. These profiles won't be listed in the UUIDs
property of the adapter.
gateway: Influence Adapter.UUIDs based on agent

If the gateway agent is not registered, remove the corresponding UUIDs
from the adapter's D-Bus property.
Release 4.102-rc3 (non-official)