Don't discard the initial bit of the VSL
Do a stat(2) check of inode/dev to detect changed vmod files.
Also insist that the vmod name matches before reusing, to cater for hardlinks.
Revert "Also insist that the vmod name matches before reusing, to cater for hardlinks."

This reverts commit caa376943e315def7cee814008f01a0796d8e1d9.
Revert "Do a stat(2) check of inode/dev to detect changed vmod files."

This reverts commit 36123ef1db0a007fb4dfe5edb485e427a7030da5.
Deal with any remaining request body in cnt_synth

Call HTTP1_DiscardReqBody() in cnt_synth before delivery to deal with
any lingering request body.

Fixes: #1577
Set default ttl (according to rfc2616 rules) to max-age, do not use Age twice

With 160927b690dd076702601b7407eb71bd423c62dd t_origin got corrected
by Age, so we already took the age the object had at fetch time into
consideration for all other calculations.

Fixes #1578
Document why updating VMODs on the fly does not work.
some words about exit codes
be more precise about status codes
Make this test 0.1 second more tolerant of timing on loaded systems
White space nit
Rework how we infer types in the VCC expresion evaluator.

This mainly (only ?) changes things when we ask for an expression
of type STRING or STTRING_LIST.

Previously addition and subtraction would follow the general rule,
"first argument determines intial type" and that would make an
expression like this fail:

	set resp.http.server_port_foo = std.port(server.ip) + "_foo";

Because the addition tries to evaluate  "INT + STRING".

The idea was that people would rewrite this as:

	set resp.http.server_port_foo = "" + std.port(server.ip) + "_foo";

To make the first argument STRING and everything will then just work.

However, this is needlessly strict in the case where we are actively
desiring the expression to evaluate to STRING -- like above where
resp.http.* has type STRING.

With the new code, when an impossible addition is encountered, it
will look at the type requested of the expression, and if it is
STRING, convert the current subexpression to STRING and continue
adding.

A large number of subtests which are designed to fail started working
with this change, they have been fixed by not using *.http.* variables
as scaffolding..

You can still get into some weird corner-cases like the difference
between:

	set resp.http.foobar = req.ttl + 1s + "_" + req.ttl + 1s;
and
	set resp.http.foobar = req.ttl + 1s + "_" + req.ttl + 1;
and
	set resp.http.foobar = req.ttl + 1s + "_" + (req.ttl + 1s);

(Hint: The last one is the only one which does what you think)

Fixes #1579