Separates out two big pieces of tracer.cpp into their own files: instruction counting into instr_counter.cpp and i/o into output.cpp. Both still have some dependencies on some of the same TLS and globals as the rest of the tracer, but shrinking the tracer.cpp file is still of value, and the interfaces between the files are not huge. Future work could further modularize and isolate.
Adds a namespace, especially important now that we have global symbols shared between files.