Valid reports whether name is an HTTP field-name token. Whitespace is never
trimmed: callers must decide whether trimming belongs at their own boundary.
Value returns the first non-blank value stored under name. Keys are matched
case-insensitively and are never canonicalized, so a block written straight
into the map answers the same way one built with the http.Header setters
does.
Keys validates and sorts the names in src. It rejects names with the same
case-insensitive identity so map iteration cannot choose which value wins.
Sorting also makes validation errors deterministic.