Added missing CS ENTER/EXIT guards to type_commit

MPI_Type_commit was missing CS ENTER/EXIT guards, which may be causing a
conflict with RMA code that creates derived datatypes at the target
process, when MPICH_ASYNC_PROGRESS is specified.  This may have fixed #1766.

Reviewer: goodell
Updated changes file with RMA changes for 3.0.3
Fixed MPI_Get_elements returning wrong values

Fix bug #884. The routine was returning wrong results for derived
datatypes. Two comparisons have been fixed in PMPI_LOCAL MPI_Count
MPIR_Type_get_elements, src/mpi/datatype/get_elements_x.c. Two new
test cases, get_elems_d and get_elems_u have been provided in f90.

Reviewer: goodell
Updated req-based ops to handle PROC_NULL

Updated request-generating RMA operations to correctly handle
communication with MPI_PROC_NULL.

Reviewer: goodell
Cleaned up handling of PROC_NULL in RMA ops

Moved handling of MPI_PROC_NULL down to the device and cleaned up
handling of PROC_NULL in the CH3 device.

Reviewer: goodell
Added new operations to RMA PROC_NULL test

Extended the RMA PROC_NULL test to cover new operations and also to test
passive target synchronization.

Reviewer: goodell
Fix handling of 0-byte xfers in req-gen ops

Added a check for 0-byte transfers in request-generating operations.
When a 0-byte transfer is encountered, the user is returned a completed
handle and no communication is performed.

Reviewer: goodell
Test handling of 0-byte RMA xfers

Added a new test to check that 0-byte transfers are handled correctly.

Reviewer: goodell
Cleanup comment in rmazero test