ThreadsafePlanner will span a goroutine, lock to a single thread,
and conduct all FFT planning on that thread. This must be used in
places where concurrency is a requirement.
type RealPlan interface {
Transform() error Close() error}
RealPlan is the same thing to an fft.Plan, but I also don't want to have
anyone confuse this for an fft.Plan once returned. As such I'm making a new
type to make it less confusing in docstrings, even though this is the same
type interface. D'oh.