Fixed looping over list instead of map; added tests

Hi there,

just found that library that is very useful to me. However, there is a bug where the order of looping over the map keys is assumed to be known. Based on go 1.2 specs, there is no guarantee in the order (http://golang.org/ref/spec#RangeClause, point #3: "The iteration order over maps is not specified and is not guaranteed to be the same from one iteration to the next.").

That caused my headers to be in a weird order that didn't match the data. I fixed that and added some tests.

Let me know what you think.