[Contribution from Artem - moved it to svn from git for him]

Replace our old, clunky timing setup with a much nicer one that is only available if configured with --enable-timing. Add a tool for profiling clock differences between the nodes so you can get more precise timing measurements. I'll ask Artem to update the Github wiki with full instructions on how to use this setup.
Update git/hg ignore files
warnings (caused by commit r32735) fix.

    reviewed by miked
    cmr=v1.8.3:reviewer=ompi-rm1.8
Provide a better help message when we are unable to complete a connection due to a firewall.

cmr=v1.8.3:reviewer=jsquyres
Try to resolve the simultaneous connection problem by being a little more careful about the choice of returned status when a connection is refused. As before, have the higher vpid of the two peers retry the connection, while the lower one waits. This can happen in a couple of places, so try to hit them all. Since this is hard to test, will ask Gilles to give it a try since he's the one who is seeing it.

cmr=v1.8.3:reviewer=rhc
Per patch from Gilles, cleanup some errors that surface when building with PGI. Verified by Tetsuya, reviewed okay by Jeff.

RM-approved

cmr=v1.8.3:reviewer=ompi-gk1.8
Can't use show_help as the RML has already been enabled, but we haven't successfully connected back to the HNP. So use opal_output instead and hardwire the message.

Refs #4908
oob_tcp_connection: print "<unknown>" instead of "NULL"

"NULL" doesn't meany anything to the user, and is somewhat confusing
to see in an error message.  "<unknown>" at least indicates that
there's an error, and we know who the peer is.
Try to provide a real hostname for the remote host to aid in debugging

Refs #4908
Silence set-but-not-used warning when timing isn't enabled
Small change to allow CUDA-aware to work with non-reduction nonblocking collectives.
Only used when CUDA-aware feature compiled in.
fortran: remove 2 unused files

As noted in the comments of these files, they aren't used.  Instead,
the Fortran interfaces for WTICK/WTIME just BIND(C) invoke the
back-end C functions (yay BIND(C)!).  Hence, there's no need to keep
these old wrapper files around any more.

cmr=v1.8.3
fortran: configure test for "optional" keyword was too aggressive

After discussions with Craig, it looks like the check in this
configure test was too aggressive and based on a prior mpi_f08
implementation model.  We don't use "value" any more, and we also
don't pass optional parameters back to C code, so this test was
checking far more than it needed to... in a non-standard way (which
breaks in the Intel 2015 Fortran compiler).  All we ''really'' need is
to check whether the compiler supports the "optional" keyword.  So
make the test ''much'' simpler and just check whether ''optional''
compiles successfull or not.

Reviewed by Craig Rasmussen

cmr=v1.8.3:reviewer=ompi-rm1.8
COLL/TUNED: alltoall - return previous default values of algorithm choosing decision thresholds (were changed by r32735)

    reviewed by miked
    cmr=v1.8.3:reviewer=ompi-rm1.8
oob/tcp: fix a race condition

Refs #4909
Fix typo.
opal_get_version.m4: use better "git log" command

For when you have a git repository, this is a bit more succinct form
of getting a git hash of the HEAD.
Fortran: Fix MPI_SIZEOF.  What a disaster. :-(
    
What started as a simple ticket ended up reaching the way up to the
MPI Forum.
    
It turns out that we are supposed to have MPI_SIZEOF for all Fortran
interfaces: mpif.h, the mpi module, and the mpi_f08 module.
    
It further turns out that to properly support MPI_SIZEOF, your Fortran
compiler *has* support the INTERFACE keyword and ISO_FORTRAN_ENV.  We
can't use "ignore TKR" functionality, because the whole point of
MPI_SIZEOF is that the implementation knows what type was passed to it
("ignore TKR" functionality, by definition, throws that information
away).  Hence, we have to have an MPI_SIZEOF interface+implementation
for all intrinsic types, kinds, and ranks.

This commit therefore adds a perl script that generates both the
interfaces and implementations for MPI_SIZEOF in each of mpif.h, the
mpi module, and mpi_f08 module (yay consolidation!).

The perl script uses the results of some new configure tests:

* check if the Fortran compiler supports the INTERFACE keyword
* check if the Fortran compiler supports ISO_FORTRAN_ENV
* find the max array rank (i.e., dimension) that the compiler supports

If the Fortran compiler supports both INTERFACE and ISO_FORTRAN_ENV,
then we'll build the MPI_SIZEOF interfaces.  If not, we'll skip
MPI_SIZEOF in mpif.h and the mpi module.  Note that we won't build the
mpi_f08 module -- to include the MPI_SIZEOF interfaces -- if the
Fortran compiler doesn't support INTERFACE, ISO_FORTRAN_ENV, and a
whole bunch of ther modern Fortran stuff.

Since MPI_SIZEOF interfaces are now generated by the perl script, this
commit also removes all the old MPI_SIZEOF implementations (which were
laden with a zillion #if blocks).

cmr=v1.8.3
fortran: don't complain about script args if we're not building fortran

refs #4917
Remove outdated OPAL parameter "opal_pmi_version". Now PMI selection is handled by PMIx MCA.