Better header handling.

- Header order of multi-valued headers is now properly preserved.
- Getting a header from a message will now return all case-insensitive
  header values combined rather than just the first found header.
- Optimized the firstHeader and hasHeader functions to not combine all
  headers and then make a determination, but rather make a determination
  on the first case-insensitive header match.

Closes #9