tests: Add cross-thread breakpoints and paint-node test
Add a 'breakpoint' testing infrastructure which will quiesce the server on client request, allowing the client to break in and introspect the server's internal structures.
This is only intended to be used for actually testing internal implementation detail; screenshot tests and the rest of the testing infrastructure should be used to test client-observable behaviour.
A very basic paint-node test is added to prove the point and exercise some of this functionality.
This is the thing I wish I'd had whilst doing !1285 (merged). It would also help us avoid things like !757 (merged), where the client has no idea that the compositor is doing something really stupid.