Simplify http_Teardown() a bit.
Introduce http->failed to mark struct http's suffering from trouble.

Usually, (probably always) this means failure to get workspace for
modifications of the http.

The intent is that this flag will have the same "latching" behaviour
as error handling in VSB's:  Once set, it stays set and nobody
reads or writes the struct http any more.

Setting the flag causes a SLT_Error message.

Rewrite http_CollectHdr() to respect failed and optimize it
slightly while were here.
More http->failed infusion and associated cleanups.