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