fix header cropping in the HTTP parser

Before this commit all parsed headers were cropped because an invalid length
was passed to __store_header().
 - For primary headers (such as Host, Connection, Cache-Control, etc) that
   was done in __TFW_HTTP_PARSE_HDR_VAL() where the "n" variable was passed
   to __store_header(). The "n" contained only length of the value, but not
   length of the whole header.
 - For raw/other headers (such as User-Agent) the one-by-off was in
   tfw_http_parse_resp(), in the "Req_HdrOther" state. Length of the header
   was calculated via the position pointing to the latest character of the
   header value (but should be pointing to the next character).
fix parsed header string corruption in the HTTP parser

The problem was the incorrectly initialized (or used?) TfwMsg->h_tbl->off field.
That caused raw and "fixed" headers to overwrite each-other during parsing.
Fix h_tbl offset increment upon storing a parsed header.

The offset is only for common headers. Special headers live by their
own constant IDs, so the offset should not be incremented for them
(as it was before this commit).

It is not a major error yet, it just causes a lot of space in the
headers table wasted for non-existing headers.
add basic tests for headers parsing code
Merge pull request #34 from natsys/fix-header-parsing

fix HTTP header parsing