Allow for generic devices types which a UrfDeviceKernel device implements, add UrfDeviceOfono

This is a rather huge change set, we're still finishing up on testing it.

Basically, taking everything generic out from UrfDevice and making it a true abstract device type, which other types can implement. So far, this means a UrfDeviceKernel which covers the current states for standard kernel killswitch devices (keeping previous functionality) and adds a UrfDeviceOfono to be able to tell oFono to effectively turn off / flight mode modems.

It goes with a bunch of small fixes for persistence and flight mode.