Validate header names according to RFC 2616

Header name validation rules are too strict. [RFC 2616](http://pretty-rfc.herokuapp.com/RFC2616) allows any ASCII character, with a few exceptions. See <http://pretty-rfc.herokuapp.com/RFC2616#basic.rules>, or:

```
message-header = field-name ":" [ field-value ]
field-name     = token

token          = 1*<any CHAR except CTLs or separators>
CHAR           = <any US-ASCII character (octets 0 - 127)>
separators     = "(" | ")" | "<" | ">" | "@"
                     | "," | ";" | ":" | "\" | <">
                     | "/" | "[" | "]" | "?" | "="
                     | "{" | "}" | SP | HT
CTL            = <any US-ASCII control character
                 (octets 0 - 31) and DEL (127)>
SP             = <US-ASCII SP, space (32)>
HT             = <US-ASCII HT, horizontal-tab (9)>
```

This commit loosens the restrictions in `Rack::Lint`.