Make random/hash director exhaust the backend list when looking for
healthy backend.

Fixes: #1575
Fix logexpect cursor creation to use the proper cursor options
Enable batch record usage in logexpect

This enables catching batch related log problems using logexpect.

This commit will make several test cases start failing until #1588 has been fixed.
Allocate request VXID only when it's needed and delay all logging
until it's been allocated.

This patch delays the VXID allocation until the time we know that we
will actually be logging anything for this request (not completely all
whitespace noise). This keeps the code in one place only (plus the ESI
mock request handling), instead of separated between the linger wait,
cache acceptor and pipelining code paths.

Coincidentally fixes the logging of timestamps problem in #1588.

Test case by daghf.

Fixes: #1581 #1588

Conflicts:
	bin/varnishd/cache/cache_esi_deliver.c
	bin/varnishd/cache/cache_fetch.c
	bin/varnishd/cache/cache_http1_fsm.c
	bin/varnishd/cache/cache_session.c