Update to latest incoming

This updates the code to work with 0.7-pre, including reorganising the code into methods on the `Plan` object and using `std::complex::Complex64`.

(It almost definitely doesn't work with the current release 0.6, mostly because `std::complex` doesn't exist in that release.)