[libqofono] Added QOfonoModemInterface class

It implements common patterns for QOfono classes that reprosent modem
interfaces (waiting for interface to appear in the interface list,
requesting properties etc). And it's doing it all asynchronously.

In addition to eliminating a few blocking calls, this also allows to get
rid of significant amount of duplicate code and make the behavior of the
modem interface objects more consistent.