Issue a warning during the creation of hash indexes
Implement mxid_age() to compute multi-xid age

Report by Josh Berkus
pg_upgrade:  check for large object size compatibility
pg_upgrade: compare control version, not catalog version

Also modify test for the possibility the large object value might not
exist in the old cluster.

Fix for commit e1598a15f4fb0f076a6034d3d3debb9776aff07a
doc:  improve configuration management section

Patch by David Johnston

Backpatch through 9.4
Support older versions of "prove"

Apparently, older versions of "prove" (couldn't identify the exact
version from the changelog) don't look into the t/ directory for tests
by default, so specify it explicitly.
Handle old versions of Test::More

Really old versions of Test::More don't support subplans, so skip the
tests in that case.
Change the way latency is calculated with pgbench --rate option.

The reported latency values now include the "schedule lag" time, that is,
the time between the transaction's scheduled start time and the time it
actually started. This relates better to a model where requests arrive at a
certain rate, and we are interested in the response time to the end user or
application, rather than the response time of the database itself.

Also, when --rate is used, include the schedule lag time in the log output.

The --rate option is new in 9.4, so backpatch to 9.4. It seems better to
make this change in 9.4, while we're still in the beta period, than ship a
9.4 version that calculates the values differently than 9.5.
Simplify calculation of Poisson distributed delays in pgbench --rate mode.

The previous coding first generated a uniform random value between 0.0 and
1.0, then converted that to an integer between 1 and 10000, and divided that
again by 10000. Those conversions are unnecessary; we can use the double
value that pg_erand48() returns directly. While we're at it, put the logic
into a helper function, getPoissonRand().

The largest delay generated by the old coding was about 9.2 times the
average, because of the way the uniformly distributed value used for the
calculation was truncated to 1/10000 granularity. The new coding doesn't
have such clamping. With my laptop's DBL_MIN value, the maximum delay with
the new coding is about 700x the average. That seems acceptable - any
reasonable pgbench session should last long enough to average that out.

Backpatch to 9.4.
Silence compiler warning on Windows.

David Rowley.
Fix Windows build.

I renamed a variable, but missed an #ifdef WIN32 block.
Add missing volatile qualifier.

Yet another silly mistake in 0709b7ee72e4bc71ad07b7120acd117265ab51d0,
again found by buildfarm member castoroides.