Add group objects, which represent the set of frame trees that are currently being displayed. Each frame tree is associated with an output, and should follow the output whenever it moves or changes resolution.
The frame trees are associated with the outputs using their name, which should be unique across different monitors, even of the same type. That might not be the case though, and it will need to be changed. The name was chosen to make debugging easier.
Nothing related to switching the current group is implemented, which will probably require some refactoring.
Add group objects, which represent the set of frame trees that are currently being displayed. Each frame tree is associated with an output, and should follow the output whenever it moves or changes resolution.