Minor jtest updates.

Format error messages over two lines to make them more legible. Use
a single function to calculate elapsed milliseconds from the
transaction start.
TS-2559: Disconnect clients on unrecoverable origin errors

If we receive an unrecoverable error from the origin, then the HTTP
tunnel shuts down the cache write, but leaves clients connected.
This means that when a transaction is aborted due to an error, or
by exceeding the configured active transaction time, the client is
left hanging for a response that will never come.

The solution is to treat errors the same as end-of-stream. In all
cases, if we have the response body we are ok, but otherwise we
have to shut down all the tunnel consumers. They can't recover from
the response body being truncated so there's no real choice.

This can be tested by setting
proxy.config.http.transaction_active_timeout_out to a short value
and taking too long to send the response body. Alternatively, close
the origin socket before sending all the body bytes, pausing to
make sure we procress to the tunnel handler state before closing.