Change configuration format to get rid of settings on OutputWriters. Instead be explicit about settings for each output writer. This should allow to simplify quite a bit the code related to settings, have OutputWriter self document their options (well, you still have to look at the code).

While the code compiles and should be iso functional, this refactoring is not completed yet. Only BaseOutputWriter has been refactored (with impacts on others classes). More work needs to be performed.

The refactoring is backward compatible. This introduces a bit too much work in the constructor, which is not terribly readable. Partly that's the price to pay for backward compatibility, partly this could be cleaned up and abstracted away.