Rationalize the output "filters" and the file management
There are currently two output "filters" with lots of repeated code. The file naming is not consistent with the class naming (this is true elsewhere as well) The argument passing to constructors and functions is inconsistent: config and control are passed and stored as references so it should be almost for free to get config and control information directly querying instead of copying stuff. There should be a single class dealing with directories and files. This should be used by both types of filters. We should use polymorphism for the output filters and get them from a factory class The file close and rename should be made asynchronous and non-blocking, it should be moved to the class dealing with files