backends/{x11,wayland}: Rework passing initial configuration to windowed backends
Currently, OutputBackend stores the initial state for windowed backends. It's messy because the backends can have different needs. Instead, make windowed backends take an Options struct with all possible options.