Replace the current layout mechanism based on passing args to a child
process and parsing it's stdout with a new wayland protocol. This much
more robust and allows for more featureful layout generators.
Co-authored-by: Isaac Freund <ifreund@ifreund.xyz>
- require the caller to use Root.startTransaction() directly
- introduce View.applyPending() to unify logic
- introduce View.shouldTrackConfigure() to unify more logic
- update all callsites to intelligently rearrange only what is necessary
`riverctl set-option view_padding 10` becomes `riverctl view-padding 10`
Having set-option doesn't really gain us anything and is more verbose as
well as being slightly inaccurate as the changes instantly apply.