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 thought we had agreed to use the device state as "prev-soft", and just set the "ALL" state for flight mode. Did I misunderstand? There's already a state for the devices, I'd prefer if there remained only one; this makes it much easier to edit the state file to do tests, fix issues, etc.; or otherwise, using an overriding flight mode-specific state that affects all devices rather than rewriting states all the time.

If on the other hand you're using this to save the previous state while in the process of reverting just-made changes; then I'd rather it not be written to file at all; it's sufficient and proper to keep it in memory.