Extracting functionality from OutputRouter and move it to OutputRegistry

OutputRegistry becomes Singleton, so OutputRouter does not have to be.
All persistence handling has been moved from OutputRouter to OutputRegistry,
which is now basically a persistence-backed registry which instantiates
configured outputs lazily.
Adding simple debug output to BatchedElasticSearchOutputFlushThread.