Add HeaderMap

It is possible that this should be part of the raw Conduit protocol to
avoid unnecessary forced normalization.