Fixes #3127: MPI-2.2: Add reduction support for MPI_C_*COMPLEX and MPI::*COMPLEX

---svn-pre-commit-ignore-below---

r28553 [[BR]]
Patch based on Takahiro Kawashima fixing the issues with some
of the Fortran datatypes. This patch prevent the copy of the
datatype description from the OPAL to the OMPI layer in order
to decrease the memory requirements.

r28919 [[BR]]
MPI-2.2: Add C++ datatypes to mpi.h and fix support for MPI_C_*COMPLEX

r28951 [[BR]]
Fix support for complex datatypes when fortran is not available but _Complex is

r28958 [[BR]]
Bump MPI version to 2.2 now that in place alltoall and reductions on MPI_C_*COMPLEX and MPI_CXX_*COMPLEX are supported

r28959 [[BR]]
Fix typos in _Complex ops

r29193 [[BR]]
Cleanup complex datatypes and update datatypes and operator code to use C99.

This commit changes the underlying opal complex datatypes to match the
C99 types: float _Complex, double _Complex, and long double _Complex. The
fortran and C++ types now are aliases to these basic types instead of
structure types. The operators in ompi/mca/op/base now work on only the
C99 types and the fortran types use these operators if the fortran type
matches a C complex type (this should almost always be the case.)

C99 is not is use in both the datatype and operator code and should make
the code both cleaner and much less fragile.

r29194 [[BR]]
Fix the case where we build without Fortran support.