Fix `--console rich` and `--console verbose` so that they always write rich content to stdout and stderr, regardless of whether they are attached to a console or not. Previously, only one of these would have rich content written to them and the other plain, depending on which of these were connected to a console. Fix `--console auto` to use verbose task headers when stdout is not attached to a console but stderr is.
Rework `BlockingHttpServer` API to separate expected HTTP request from the action that should be performed when the request is received. Also remove usages of `HttpExchange` from tests (but not fixtures) as this is an internal detail of the fixture.