Convert header_lines into a map

Couple of things - 
* Not sure if this approach is better than overloading the comparator with a case insensitive version. 
* Maybe we  should refactor all the *_header_line() into a separate class
> Is there a reason for the discrepancy there?

The only reason I changed this here is because it broke the unit tests. There isn't a spec though, but it makes sense to have the same behavior. I can update query_params to accept the first ```val```