The new way Output Delegators work is that events flow from:
OutputDelegator -> OutputDelegatorStrategy -> Output
The output delegator handles all the common denominator tasks (like metrics) and
a few other things. The OutputDelegatorStrategy handles concurrency and Output instantiation.
This is a significant improvement and simplification over the past where we used mixins and dynamic method
redifinition.
This removes the concept of plugin 'unique_names' and replaces it with the 'id'.
Also consistently autogenerates plugin IDs based on a given config file using SHA1 hashing.
Fixes#5752
If set to try this will allow the user to specify one or more values.
This generally replaces the :array type, which had fewer type checks.
The array type is still needed for lists of complex objects, e.g. hashes.
Fixes#5453