Headers are ordered and case insensitive

Merged `OrderedHash` with `Headers` so that headers will be case
insensitive. Thought I did that back in issue-33 branch but did not
:smile:

Also removed previous `OrderedHash` stil cited in documentation that
needs to be regenerated
Display#show_headers must be case insensitive

Headers match must be case insensitive everywhere, maybe we should put
this logic in `Headers` class?
Extract custom matcher in spec helper
Merge pull request #116 from gabrielelana/case-insensitive-headers

Case Insensitive Headers
Require RubyGems before using Gem::Version

Ruby v1.8.7 does not load RubyGems automatically.
Extract input from tty in InputDevice::TTY

Preparing to support input from a pipe
Support for input from pipe
Refactoring: simplified constructor
Refactoring: better names
Return quit command instead of throwing :quit

During an interactive tty session the readline library catches `<C-D>`
as the end of the session, I replaced the `throw` and `catch` of `:quit`
symbol whith a more coherent `quit` command, so in the end, in an
interactive session, pressing `<C-D>` it's like execute the command
`quit`
Merge pull request #112 from gabrielelana/issue-91