Use bereq.url within vcl_backend_response

Pointed out by dharrigan in #varnish.
Fix typo in error message
Add more changes.
Fixes #1480
Some stylistic consistency patches from Dridi Boukelmoune
who made them with Coccinelle.

Thanks!
One may have gcc or other things restricted, so that e.g. only a
specific user and/or group may execute it. Varnish never inherited
the groups of the user that has been specified by "-u". initgroups()
will make sure that varnish gets all supplementary groups.

Submitted by:	Christian Ruppert
Fixes	#1482
Missing paren. Spotted by Alexander Kuznetcov
varnishtest txresp reason phrase 'Ok' -> 'OK'
Error when no rst2man is found

If one runs configure with --without-rst2man or no rst2man is found,
the value is "no", not an empty string.  Handle this correctly in
configure.

Fixes: #1473
Only attempt IMS on status=200 objects.
Remove negative Age assertion and truncate to zero instead.

The Age reported on response objects is calculated from the last
request timestamp taken. For a cache hit that hasn't been on a
waitinglist, that will be the Start timestamp. This opens a race where
the requests' last timestamp could be before the objects t_origin.

Truncate the Age to zero rather than assert in that case.

Fixes: #1486
Copy the status code, proto, status string and response message on
backend IMS.

When revalidating using backend IMS, copy the status code, status
code, status string and response message from the original object into
the new revalidated object. This makes sure that none of the 304
message fields gets applied to the new revalidated object.

Fixes: #1485
Document vcl_purge and replace vcl_erro with vcl_synth