Do not return compiled headers when setting header; BC break.

A comparison against current master using the TechEmpower
JSON benchark shows:

- reduction of overall call count (previously 801, now 750)
- 1,120 bytes less max peak mem (now 2,746,952 bytes)

Where and when this breaks BC:

Headers cannot be set and get in one go anymore. Users must
now first set the headers than in another call get them.

Research showed that this features is rarely used (once throughout the core). Setting headers
happens in the very majority of cases. Most often headers are only get once to render the
message.

When headers are retrieved they must be formatted. As this happened on each set too (while the
result often not used) and the concerns (set vs. get) are different this made a good optimization
target.
Refactoring Message::headers().
Optimizing conditional check for performance.
Optimize HTTP header parsing.
Noting that action request normalizes headers.
Mini-refactor action request scheme assignment.
Optimize request configuration.
Adapting test; make cache not return headers (acc. to docblock).
Merge pull request #1089 from davidpersson/optimize-net

Optimizing net related classes