PetscOptionsInsertFile: combine Bcasts for alias and values

This is an attempt to work around a BG/Q bug in which some sequences of
collectives deadlock.  This packs the options aliases and values into a
packed buffer that can be communicated with a single MPI_Bcast.

Suggested-by: Vitali Morozov <morozov@anl.gov>
Sys: add failing test expanding ~/file-name and ~user/file-name

> $(realpath ~/file-name) != /home/jed/petsc/src/sys/examples/tests/~/file-name
> $(realpath ~jed/file-name) != /home/jed/petsc/src/sys/examples/tests/~jed/file-name
Sys: avoid getpwuid in file path routines

This function is badly implemented by some well-known supercomputing
vendors (causes corruption and crashes) and ~ expansion in the shell
uses $HOME rather than the password home directory field anyway.

This commit does not affect the failing test for path expansion.
Sys: fix PetscGetFullPath expansion of ~ and ~user, ensure NULL termination

Also update test to check that paths are handled as well as possible
when the paths are too short.  Still not bulletproof.

If the path is much too short (not tested here), then
PetscGetWorkingDirectory will fail with an error because getcwd fails.
cleanup includes that are no longer needed. Also remove check for _fullpath() as
the corresponding code is removed.
Sys ex13: avoid non-portable realpath(1) in verification test

Unfortunately for this purpose, realpath(3) errors if a file does not
exist.  This is different from the GNU coreutils' realpath(1) which only
needs the parent directory to exist.  So make the test split into (dir,
base) and only use realpath(3) for the directory, then put the path back
together.

Reported-by: Barry Smith <bsmith@mcs.anl.gov>
Configure: Package.downloadonWindows is supposed to mean that Windows compilers work. not Cygwin
- Also changed doc for Package.worksonWindows, which does refer to Cygwin
__float128: when blas/lapack is not found instruct using f2cblaslapack
configure: both downloadonWindows and worksonWindows refer to MS compilers.
Also fix isWindows() -> isWindows(CC).
Merge branch 'balay/__float128-fix-download-f2cblas-mesg'
Merge branch 'knepley/fix-windows-download'
Merge branch 'jed/avoid-getpwuid'

The file path routines were broken because the current directory was
placed in front of the given path before checking for leading ~ or
~user. This is now fixed, along with the removal of getpwuid (a
liability on BG/Q and Cray). We still attempt to use getpwnam when
encountering ~user.

* jed/avoid-getpwuid:
  Sys ex13: avoid non-portable realpath(1) in verification test
  cleanup includes that are no longer needed. Also remove check for _fullpath() as the corresponding code is removed.
  Sys: fix PetscGetFullPath expansion of ~ and ~user, ensure NULL termination
  Sys: avoid getpwuid in file path routines
  Sys: add failing test expanding ~/file-name and ~user/file-name

Conflicts:
	config/PETSc/Configure.py
Merge branch 'jed/options-insert-bcast-bgq'

Attempt to work around BG/Q MPI_Bcast bug.  It is unknown whether it is
successful, but this uses fewer communications so it should not be worse.

* jed/options-insert-bcast-bgq:
  PetscOptionsInsertFile: combine Bcasts for alias and values