Fix header value testing

Rather than comparing the objects, we'll now compare the values by parsing
header objects as arrays. This ends up being a bit nicer anyway, as you probably
shouldn't be comparing the objects.

I've considered this change in depth, as it is a backwards compatibility change,
but I'm happy with it.