Used to validate config objects
Runs all the individual private validators
the pre-validation original Config
potentially a modified Config that is valid