Fix memory leaks through clients, tests, etc
This is sufficient to fix most of the leaks observed when running the test suite. All of the rest of them are related to how the compositor launches clients - desktop-shell's shell & text children, Xwayland, etc - but fixing those needs API changes. After that's done we can flip LSan on in CI.
cc @mvlad