Timeline output through debug protocol
Now that we have the debug protocol from #133 (closed), it would be great to extend its usage to the timeline protocol, allowing clients to take dumps of that. Some work is required here:
- the timeline code currently uses global variables to track its state, which should probably be moved into a per-compositor context?
- object emission and ID generation is currently done lazily, and needs refactoring in order to be able to work when we have multiple timeline contexts (e.g. two debug clients streaming it as well as the compositor's own output)
- list handling for timeline contexts is slightly weird and needs to be reworked (I have details on this written down but the notebook isn't with me right now)