Split Header into Header and HeaderFormat

Header contains all of the trait-object unsafe methods including the name
of the header and parsing. HeaderFormat contains fmt_header, which is the
only trait-object safe method.