Parse HTTP headers using raw byte arrays instead of strings. This allows us to apply different encodings for different parts.
This change is backward compatible and should not affect any existing operation, so WebAPI version bump is not required.
PR #23083.
1. Utilize string matcher
2. Remove split behavior parameter
Previously `KeepEmptyParts` behavior doesn't match Qt's
implementation and since our codebase doesn't really make use of it,
we can just remove the parameter.
3. Add tests.
PR #22352.