Refactor of driver config and its usage across the driver.
Driver level Config is no longer duplicated or lazily, validation should be completed as early as possible.
Remove null-conditional member access for logging
Previously the only way to get a null logger was to define the logger as null explictly in the driver, which would replace the no-op logger at NullLogger.Instance instead we check if it is null there and ignore the null parameter. half of the code also then wraps the logger in a prefix logger so would end up not being null, but still no-oping
Refactor of driver config and its usage across the driver.
NullLogger.Instance
instead we check if it is null there and ignore the null parameter. half of the code also then wraps the logger in a prefix logger so would end up not being null, but still no-oping