Add output (monitor) API
TODO: multiple contexts on each monitor, hotplugging from evdev