Fix possible race between DeviceAdded signal and device enumeration
When a device is added after the EnumerateDevices call and before the DeviceAdded signal is connected, the event will go unnoticed.
Cherry-pick of !160 (merged), with also !152 (merged) (drop UPower < 0.99) cherry-picked to avoid merge conflicts.