Some states need to be set from outside the scope of the Modem interface, like
Registration-related ones (REGISTERED, SEARCHING, ...) or Connection-related
ones (CONNECTED, ...).
When the first AT port is grabbed, modem initialization is launched, using that
specific port. This port is also passed to all interface initialization methods.
Interfaces won't have a 'status', just initialize(), enable(), disable() and
shutdown().
Also, shutdown() should never fail. We will take care of cancelling any ongoing
operation afterwards, before calling shutdown().
The Modem interface can be disabled, going from enabled back to initialized. The
disabling process will include closing the ports opened during the enabling.
With AT+GCAP we load the currently available capabilities, and we store them
in a new "iface-modem-capabilities" property in the MMIfaceModem interface. This
property is bound to the "current-capabilities" property in the MmGdbusModem
skeleton object, so no need to update both when it changes.
ModemCapabilities depend directly on whether the modem can load firmware without
reflashing the device. Currently, just set it equal to CurrentCapabilities.
The new `mm_iface_modem_signal_quality_check()' method will reload the signal
quality value on demand, set the value of the `SignalQuality' property in DBus,
and also return the results.