style: drop inline from friend definitions

These functions are implicitly inline (11.3/7).
fix(headers): correct impl and improve interfaces

(+) add_header and get_header now accept std::string by reference,
    with the same null-terminated semantics as before.
(+) an insane setup to test header support
(+) header list creation and lookup now use the same algorithm,
    which compare just the field-names.
(+) non-headers are simply skipped.