`Http::Headers` directly modifies the passed environment.

The env hash passed to `Http::Headers#new` must be in env format.
Also be aware that the passed hash is modified directly.

docs and test-cases for setting headers/env in functional tests.

Follow up to #9700.
document request simulation methods in functional tests.
Merge pull request #9716 from senny/rework_headers_functional_tests

Rework headers functional tests