Fix crash with disabled outputs
Many code improvements, plus add compatibility with sworkstyle.
This can lead to maintainance problems if `sway` decides to change a structure by only a field that we don't even use. This seems to already happen if you have an output declared in your `sway` configuration that is unplugged.