Fix parsing of the "Expires:" header.

- Another off by one problem in __resp_parse_expires().
  Set the 'p' pointer correctly to the next character.
- The move should be 3 characters forward in 'Resp_I_ExpMonth'
  state in __resp_parse_expires().
- When parsing time, the delimiter after an hour or minutes digits
  should be the colon ':' and not a whitespace. Introduce a new
  function __parse_int_a() to stop at any of a set of specified
  delimiters, and implement __parse_int() via __parse_int_a(). Use
  __int_parse_a() in 'Resp_I_ExpHour' and 'Resp_I_ExpMin' states.
Fix parsing of a message body

A message body was parsed with the same macros used for parsing HTTP headers.
One of major obstacles was that there could be zero-value bytes in the body,
while that couldn't happen in headers. That didn't allow parsing of a message
body. This commit introduces lighter versions of those macros that are used
in parsing of a message body.
Fix handling of chunked messages

CRLF that comes after chunk data was not processed correctly.
Introduce a new state '_BodyChunkEnd' in the set of macros for message
body processing. The new state is a simplified version of '_BodyChunkEoL'
state and is intended for processing a CRLF that comes after chunk data.
Another fix for proper storing of HTTP message headers

The way it was it didn't work for headers that were split between
different data blocks (the POSTPONE case) as it moved forward for
an incorrect number of bytes. This change fixes that. Ultimately,
this fix is temporary. A change is coming that will allow storing
of header names only for RAW (unnamed) headers.

Also, modify a couple of debug printk() to print out an "id" of
where the header is stored.
Fix __parse_connection()

Multiple connection tokens may be present at the same time in
the "Connection:" header. Important tokens are processed explicitly,
while other are processed in a generic way. Should the need arise,
tokens can be added to the explicit processing section (for instance,
the "TE" token).
Fix incorrect handling of "other" headers in tfw_http_parse_resp()

- The 'p' pointer was reset to a possibly NULL value, and then used
  in a check. Do not reset the 'p' pointer. Also, the move forward
  was for a wrong number of bytes.
- Use uniform variable names and code constructs when searching for
  a LF, CR, comma, or space characters.
- Reformat several identical comments for better readability.
"keep-alive" and "close" tokens may not be present at the same time

These two connection tokens are mutually exclusive. Enforce that
when processing the "Connection:" header in __parse_connection().
Incorrect use of "len" throughout http_parser.c

CHUNK_STRNCASECMP() is used in functions and parts of the code to find
and process specific HTTP headers and header tokens (fields). The macro
uses "len" argument that is set once in each function prior to the macro
use. As the macro is used and the FSM moves from one state to another,
the "p" pointer is moved forward as well, thus making the initial "len"
value no longer correct. Using the initial "len" value may therefore
lead to memory corruption.

- Fix CHUNK_STRNCASECMP() macro.
- Fix all places that use the initial "len" value.
- Fix several places where a "comma" pointer is incorrectly compared
  to an "lf" pointer (similar to 46f3eaeb)
- Correct a small number of comments for consistency and readability.
- Use the same naming conventions in macros as in the rest of the code.
Add support for HTTP/1.0

It's still out there, mostly in requests. Responses go out as HTTP/1.1.