Teardown listeners after compile

The compilation listeners (diff generator, file action printer, …) are not shut down after compilation has finished. This causes the teardown actions not to be called, which causes problems:

* `output.diff` is sometimes not generated correctly (#225)
* Profiling information is not printed
* The garbage collector is not re-enabled (although I suspect the effects of this are minimal)
* Skipped items are never printed

The `max_filter_name_length` change was necessary because the `max_filter_name_length` variable is not actually defined. D’oh!

I am not sure how to test this properly. Ideas are welcome!