Add a GCC analyser
Keep the root path in the tracer output
Refactor things that modify nodes in the tree, call them "visitors"
Add a dumb emitter for Ninja build files, and get everything mostly working