Fix different header length behavior under Varnish 4.

Varnish 4 now returns a 400 error instead of 413 when the header length
is too big.

Also clarify where our header limit actually comes from.
Add failing tests for not retrying backends on timeouts.

We don't want to re-send requests to the backend if the backend happens
to timeout (particularly for non-GET requests which may be harmful).
Varnish doesn't appear to have a way to really control this without
completely disabling keep-alive. Hrm.