rework passing headers and env variables in integration tests

As discussed this is a rework to support both HTTP headers and CGI env variables in the integration testing API.

I refactored `Http::Headers` to always store the variables in CGI format internally. The data can be accessed using both formats and the integration testing API no makes use of `Http::Headers`.

Since not all headers are prefixed with "HTTP_" in the env format I had to add a whitelist. I don't think the whitelist is complete so please let me know if I should add more.

This solves the problem described in #6513