Fixed #23107 -- Made runserver output respect --no-color.

This commit reverts 67d7da5fb9498b811f0168f5df2308ad4743027f.

The previous fix changed the environment globally, which meant
that any call to `call_command(no_color=True)` prevented further
`call_command` with color.

This fix still relies on the environment because it's currently the only
way to reach WSGIRequestHandler, but it's now limited to the `runserver`
command. This seems an acceptable compromise considering `runserver` runs
indefinitely.
Fixed #23663 -- Initialize output streams for BaseCommand in __init__().

This helps with testability of management commands.
Fixed #23686 -- Tweak color output of the system check framework.