register fftw cleanup with Py_AtExit

when atexit is called it is possible some FFTW instances are still
around. if fftw library is destroyed the plans they refer to are
invalidated and may cause random core dumps at the end of a python
program.

Note that there still seems to be a double free when the module is unloaded
on a module variable; this may be related
to the way cython handles GC incorrectly (pure speculation)

We may carefully examine the code for cycle references to avoid running this
issue.