Flight mode async

This change includes a number of changes to urfkill in order to fix a few longstanding critical flight-mode bugs, namely:

https://bugs.launchpad.net/ubuntu/+source/urfkill/+bug/1321627
https://bugs.launchpad.net/ubuntu/+source/urfkill/+bug/1339794
https://bugs.launchpad.net/ubuntu/+source/urfkill/+bug/1354716
https://bugs.launchpad.net/ubuntu/+source/urfkill/+bug/1354716


I agree that it shouldn't happen on a production device running Ubuntu; but I'm thinking of any device in general. People can and will rebuild kernels on the desktop, or we'll have someone come up with some new kind of device that needs to be handled in rfkill. I think we can play nice and not outright crash if that's the case, especially when urfkill does get respawned automatically. If it happens on an event, with a g_warning that event will just be ignored (and a warning will be written), instead of going into a loop of crashing and restarting.

It's kind of like the Part 15 FCC rules: "Operation is subject to the following two conditions: (1) this device may not cause harmful interference, and (2) this device must accept any interference received, including interference that may cause undesired operation." Where we can, we should strive to keep working somewhat fine for wifi, bluetooth devices even if the kernel adds some new rfkill type; instead of crashing as it has done in the past.