Devices as singleton

The devices class is now a singleton, and that single instance is
obtainable from anywhere in the code.

It also exposes two new functions that return vectors of the names
of the devices and their status.
Show name in logs when running device action
Creates aliases with the status of the devices

Will create aliases with the status of the devices as true/false so that
actions can use them as commands in conditional expressions

This allows actions like:

router && s2ram

That will suspend only if the other device, router, is present.