fix a leak in procmesh.

Note that on current Cray with shared MPI library, we still
run out of MPI_Comm or something similar and crash in a call
to MPI_Comm_size in pfft. This happens after planning for about
120 ~ 256 FFTs. I haven't measure this precisely.

Also notice that on Edison.nersce.gov, the intel compiler produces
bad code for pfft and fftw. use the GNU compiler, which is also the
compiler they use to compiler fftw.
fix CRAY gnu+shared MPI crash

somehow in this situaltion the 20 byte size of MPI_Status is
causing a problem after MPI_Sendrecv in those transpose routines.
The status variable is allocated right next to `buf' on the stack.
MPI_Sendrecv appears to have written 24 bytes to MPI_Status.

As a result buf is cleared zero.

I figured this out by putting a heck number of ASSERTIONs after each
function call, and finally find buf is cleared zero after MPI_Sendrecv.

Luckily we do not use the result in MPI_Status. thus passing in MPI_STATUS_IGNORE
is good enough of a fix for now.
remove -dynamic keyword

cray actually didn't like it.
-shared is to build a so. -dynamic is to build a dynamic executable.