Headermap

Headers are now stored in a map so they are accessible quickly by name.

STILL TODO: restrict header access to Get/Set methods so that the header order can never get out of sync with the actual list of headers.