Rewrite hypervisor functions, require root.

This commit adds improved hypervisor detection, plus the ability to
get/set hypervisor variables. The `system-status` script now exposes the
modem status through a `modem_status` hypervisor variable; this is
currently done on every screen repaint, but can obviously be improved to
only interact with the hypervisor variables when the modem status
changes (this'll be in the next commit).

Finally: service, package, and supervision scripts now refuse to run
if you're not root (or using sudo).