Support configuring Pino and custom loggers
This major release brings support for configuring the underlying Pino instance used for logging, or to replace it entirely with a custom logger. The existing logger behaviour has been put into the default logger, to avoid breaking changes.
This also updates the testing strategy to additionally run some test suites within containers, to provide further assurance on the package working in isolation.