pg_dump: Reduce use of global variables

Most pg_dump.c global variables, which were passed down individually to
dumping routines, are now grouped as members of the new DumpOptions
struct, which is used as a local variable and passed down into routines
that need it.  This helps future development efforts; in particular it
is said to enable a mode in which a parallel pg_dump run can output
multiple streams, and have them restored in parallel.

Also take the opportunity to clean up the pg_dump header files somewhat,
to avoid circularity.

Author: Joachim Wieland, revised by Álvaro Herrera
Reviewed by Peter Eisentraut
Blind attempt at fixing Win32 pg_dump issues

Per buildfarm failures
Minor whitespace adjustment.
Add p_relref_hook.

No use made of it yet.
Revert "Add p_relref_hook."

This reverts commit c30adc9bfbb0ab2300121f773930eb9bcfe99ac1.
Merge branch 'master' into transition