upower: Get rid of QDBusInterface usage
It does a blocking introspect call in its constructor to create its dynamic properties.
We can just fetch the properties manually using the defines rather than relying on the interface/service stored in the QDBusInterface.
We can also blindly connect to a signal (install a "filter"), no need to check whether the interface is valid or not.
While at it, use QDBusReply instead of pending + waitForFinished.
upower: Remove property from negative cache if change is received
If we received a change for a property, we know that the property exists, so we can remove it from the negative cache.
Particularly in case of an invalidation, we want the property to be queried again next time
Battery monitor still works, probably needs a bit more real-world testing