Implement MPI.Cancel!

Also implement a few Send/Recv functions for types that have a direct MPI representation. This change should be backward compatible.