Fix segv in MPI_Graph_create_undef_c Intel test.

When you call MPI_Graph_create with a old_comm of size N, and pass
nnodes=(N=1), then the Nth proc is supposed to get MPI_COMM_NULL out.
The code in this base function didn't properly handle the proc(s) that
are supposed to get MPI_COMM_NULL out.

cmr=v1.7.5:reviewer=hjelmn
Protect against 0-byte allocations in carte_create and cart_sub.

cmr=v1.7.5:reviewer=jsquyres
Return non-SUCCESS error codes from attribute copy functions.

Without this, an attribute copy function could return non-success, but
it would not be propagated upwards.  This caused the intel
MPI_Keyval3_* tests to fail.

cmr=v1.8:reviewer=hjelmn