Update the connp structure before firing callbacks

This allows the host application to get a more accurate view of
the parsing state, and helps debugging
Invoke body data hook even if data chunk is zero length

This will be the case when an object is a zip file that deflates
to data of zero length.  The host application will still need to
receive the body data hook so that it can account for the actual
data transferred, the redundant zip headers, which are not zero
length
Force invoke response headers callback after a CONNECT response

Because the transaction is set to STREAM TUNNEL mode, no further
state functions will be invoked, so the FINALIZE function and
the response headers callback will never be executed
During uri normalisation, make use of pre-parsed port_number

If the uri has already had it's port parsed and converted to int,
for example if it is a CONNECT and is parsed with:
  htp_parse_uri_hostport
then the validated and converted port number is already available
to set in the normalised uri structure.
At least, this is a nice optimisation, at best, it fixes the
problem of the normalised uri structure not containing any
port_number value at all, when in fact, the raw uri did have one.
Also check the proxy-authorization header when parsing auth info

Not just the authorization header
Don't buffer request or response data if there is no data left

At least, this is an optimisation.  At best, this avoids nasty
operations such as calling malloc(0)
Allow a transaction with CL to signal complete via stream close

Sometimes transactions that have the Content Length field will
close, either as the data has finished streaming, or part way.
In either case, allow the transaction to go into finalise state
so that the final response complete and transaction complete
hooks can be called