Use proper HTTP/1 header syntax
Issue 400 code if header lines lack a ':'

Fixes #1598
White-space OCD
Give busyobj a copy of the hash-key so directors can access it.

(VDD14q3 item)
Name some arguments just to show that we (already) can

(VDD14q3 item)
Whitespace OCD
Get the name token out of the way prior to looking for a ',' or ')'.
Eliminate a surplus argument
Shuffling the backend code around a bit in preparation for multi-protocol
backends.
Round up vary length

Round up vary length to make sure that the object workspace can take
the rounded up Vary string without overflowing.
Use dir->gethdrs() as far down as we can, then switch to getfd().
Add a new director method "->resolve" which returns another backend to use.

This is called recursively until we get to the bottom of the pile.

Doing it this way means that "pick one" directors dont need to know
about other methods on directors and can concentrate on just picking.

It also prevents us from eating up a lot of stack.
Introduce beresp.backend.

Now bereq.backend is the backend or director we chose, whereas
beresp.backend is the actual backend, after directors have done their
picking and choosing, which sent us the reply.

Constify the VCL_BACKEND datatype.