refactor Config API slightly, tests passed
- add a unified Config.declareSupports() method for use in initialisation
  - remove most of the check* methods, instead do this directly in declareSupports()
  - move common logic from {client,server}.init() into declareSupports()
- add a unified envvar validation system using composable first-class functions
  - exceptions thrown during validation automatic trigger config.writeEnvError()
move allTransportsEnabled logic into parent Config class
allow Config to direct their output elsewhere; useful for tests
move envvar parsing out into a @classmethod, fromEnv()
rm method unused after the refactoring
refactor write and decision logic into a separate TransportPlugin class
- deprecate old API that created a new config for each method call