case-insensitivity for header field names

while testing [angelo](http://github.com/kenichi/angelo) on
heroku, i discovered that heroku's router is downcasing request
header keys. this is valid according to:

http://www.w3.org/Protocols/rfc2616/rfc2616-sec4.html#sec4.2

this change should make all access to request header keys
insensitive, though probably not in a very performant way.

there's most likely a way better way of handling this... but wanted to get this on the radar. this [app](https://github.com/kenichi/angelo-heroku-test) actually works on heroku with the beta websocket support enabled. note the [Gemfile](https://github.com/kenichi/angelo-heroku-test/blob/master/Gemfile).