new TfwStr/TfwStrChunk implementation and basic integration with HTTP parser

The commit contains two changes:

1. New implementation of the TfwStr/TfwStrChunk structures.
Now the array of chunks is flat (instead of tree-like), and the structures
doesn't allow to create 2-level compound strings.
That allows to get rid of several bugs in the HTTP parser that occur
for fragmented HTTP messages.
Also new the implementation allows to cache length in the TfwStr
structure that enables some optimizations.

2. Integration with the HTTP parser.
The new TfwStr/TfwChunk approach caused significant changes in the parser.
Now the parser tends to not store pointers to separate chunks to avoid
inconsistancy that happens when you modify a chunk and don't update the
parent TfwStr object.
Also a bunch of __FIELD_*() macros is introduced that helps to accumulate
data in the generic parser->field. That allows to handle fragmented URI
and Host values correctly. Also slightly more optimized.