Most headers non-compliant with spec

Keyword is imported from dir-spec and

KeyValue ::= Keyword "=" Value
Keyword = KeywordChar+
KeywordChar ::= 'A' ... 'Z' | 'a' ... 'z' | '0' ... '9' | '-'

but... most headers have underscores in them.

My parser wasn't strict enough to catch this the first time. ):

I suggest this is fixed with a specification update to reflect reality rather than creating complexity we have to maintain forever parsing two sets of keys.