mpi_f08: Fix param name and string length for MPI_GET_LIBRARY_VERSION

Junchao Zhang pointed out to me that we had the wrong parameter name
and string length specification for the "version" parameter.  This
matters because Fortran allows passing by parameter name
(vs. parameter ordering).  Specifically, we had the interface as:

{{{
subroutine MPI_Get_library_version_f08(name,resultlen,ierror)
   character(len=MPI_MAX_PROCESSOR_NAME), intent(out) :: name
...etc.
}}}

but it should be:

{{{
subroutine MPI_Get_library_version_f08(version,resultlen,ierror)
   character(len=MPI_MAX_LIBRARY_VERSION_STRING), intent(out) :: version
...etc.
}}}

Thankfully, MPI_MAX_PROCESSOR_NAME and MPI_MAX_LIBRARY_VERSION_STRING
are both 255 in OMPI, so there's no ABI issue caused by changing the
length from MMPN --> MMLVS.

The ABI is also unaffected by the parameter name change: if you
compile/link an MPI application calling MPI_GET_LIBRARY_VERSION with
1.8, it'll still run-time link with this change.

However, if an MPI program compiled using parameter name passing with
the old/incorrect parameter name ("name"), it won't be able to compile
with the new/correct parameter name ("version").  But this will only
happen for an incorrect MPI application (because the MPI-3 mandated
parameter name is "version", not "name"), so they deserve what they
get.

cmr=v1.8.1:reviewer=dgoodell
mpi.h.in: fix comment to match code

Thanks to Lisandro Dalcin for noticing.
Shave some time off of mpirun's operation by not waiting for the listener thread to terminate before exiting

cmr=v1.8.1:reviewer=rhc
mpi.h.in: We're long past the v1.5 series; this comment can go away
Reshape all the packing/unpacking functions to use the same skeleton. Rewrite the
generic_unpacking to take advantage of the same capabilitites.
mpi_f08: pass function pointers from Fortran to C properly

Use type(c_funptr) to "cast" the fortran function pointers to
arbitrary C pointers.  In C, we then pick up the appropriate function
pointer type.

Tested with ifort 14.0.2 and gfortran 4.9 snapshot (which is what
identified that the previous method of passing function pointers was
not Fortran'08-compliant).

Refs #4157
fortran: Separate pre-defined attribute and conversion interfaces

Differentiate the pre-defined attribute and conversion interfaces into
those with INTEGER handles and those with TYPE(MPI_*) handles.

Refs #4157

cmr=v1.8.1:ticket=#4512
fortran: Remove the gfortran-4.9-disabling configry

The bug in #4157 has now been fixed, so remove the configure test that
disabled mpi_f08 functionality for gfortran 4.9.

Fixes #4157

cmr=v1.8.1:ticket=#4512
fortran: remove warning that compiling the "mpi" module takes a long time

Since we only builds the "small" size of the "mpi" module any more, it
does not take a long time to compile.  So remove the warning that is
emitted.

Also remove a vestage of Windows support that was leftover in the
Fortran area (i.e., building mpi.obj).
Rename file to match pattern used in other names and in Makefile.am

Don't know if this needs to go to 1.8.1, but will cmr it and leave for Jeff to decide

cmr=v1.8.1:reviewer=jsquyres
Ensure we properly terminate the listening thread prior to exiting, but do so in a way that doesn't make us wait for select to timeout.

Refs #4510
Prevent a segfault if we encounter an error while parsing a hostfile. Don't issue and error_log output as the hostfile code already prints an error message

Thanks to Tetsuya Mishima for the patch. Reviewed ok by rhc.

RM-approved

cmr=v1.8.1:reviewer=ompi-gk1.8
osc/rdma: fix deadlock with put_long protocol.

When sending PUT_LONG, the data is sent before headers, and sometimes 
the header is not flushed immediately. This creates a lot of unexpected 
receives in the peer, since it would posts a receive only when gets the 
header, which makes it run out of receive buffers. When the sender 
eventually flushes the window, the receiver already has no buffers to 
receive the header, which causes a deadlock.

The fix is to always flush the headers when doing put_long.

cmr=v1.8.1:reviewer=hjelmn
OSHMEM: sshmem verbs: ofed api changes

Use only contig allocator if shared_mr() is not supported
Fixes ibv_exp_reg_mr() parameters passing.
Fixes incorrect handling of sshmem_verbs_hca_name option.

fixed by AlexM, reviewed by Mike

cmr=v1.8.1:reviewer=ompi-rm1.8
Remove a non-necessary label.
Per suggestion from George, use a pipe for terminating the thread.

Refs #4510
Correctly save the displacement for the case where the convertor is not
completed. As we need to have the right displacement at the beginning
of the next call, we should save the position relative to the beginning
of the buffer and not to the last loop.
btl: Use C99 sub-object naming when initializing BTL components

Two things to note:

 - This change will allow us to expand the BTL interface without
   having to worry about modifying BTLs that will not support the new
   interfaces. More on this will come later this year as part of the
   1.9 series.

 - C99 guarantees that uninitialed members of structs declared outside
   of functions (DATA binary section) will be initialized with
   0's. This allows us to drop stuff like .btl_flags = 0, or .btl_get
   = NULL.
Change this filename back (i.e., revert r31375).

It's a singular filename because there's only 1 interface in the
file.  Also, r31375 missed updating the name in a few places, and
broke the build for compilers that supported the mpi_f08 interface.
OSHMEM: align profiling interface with SPEC 1.0

Now we should be full compliant to OSHMEM SPEC 1.0

fixed by Roman reviewed by Miked

cmr=v1.8.1:reviewer=ompi-rm1.8