keep order of request formats

since we use a struct to store the request formats, it was possible for
the incorrect format to be returned for the content-type. this was shown
in the `$requestContentType_header_cgi_xml` test where the `wddx` format
was being returned instead of `xml`

by using a linkedhashmap the order that the formats are stored is
maintained thus allowing for the proper format to be returned.

the side effect is that the keys are case sensitive. we solve this by
low casing any formats before storing them.