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


The soft attribute probably still should be implemented in each device; they may handle it in different ways, and in some cases (kernel device) it's better to just keep track of it in memory than to query something to get a value; especially when we already do track the events where that value might change.