Add new array functionality from FFTW

FFTW also allows you to execute a plan on different arrays than the ones for which the plan was originally created.  This can be very useful for e.g. calculating large numbers of FFTs on slices of larger arrays.  This extends Plan simply to allow for this functionality.  A test is created in fftw_test.