the new array api.

1. add a pfft_fftw_plan type representing a FFTW plan with the
   routine to execute the plan and the I/O array used in the planning.
   This array is needed because the plan data type in fftw is opaque.
2. passing the arrays used in pfft_plan_xxx all the way to the calls
   to FFTW execute routines. These arrays are stored only int the
   toplevel plan structs, thus the actual call to
   pfft_fftw_execute_plan cannot otherwise see them.
3. passing the arrays used in the pft_execute_dft_xxx calls all the
   way to the FFTW execute routines.
4. The toplevel plan input/output arrays are compared with the FFTW
   plan input/output array. The true arrays used in the FFTW execute
   calls are adjusted accorindingly.
5. The old pfft_execute is now a wrapper of pfft_execute_full, which
   utilizes the newarray interface.
   The old-array calls take the same code path as the new-array calls.

The old test cases seem to be preserved. A new test case is added on
c2c.