Fix for memory leak

Moves some C-level initialization to `__cinit__`.

This fixes a memory leak that happened when `__init__` was called more
than once (an oddity that can happen during the lifetime of a Python
process). `__cinit__` is only ever called once per-instance.

When `__init__` was called more than once, PALM was reinitializing some 
variables and losing track of the memory that they originally pointed to.

http://docs.cython.org/src/userguide/special_methods.html#initialisation-methods-cinit-and-init