MRG clean up Cython and C code

Most importantly, I added `np.import_array()` where it was missing, per [Cython for Numpy users](http://wiki.cython.org/tutorials/numpy). `$(make in 2>&1 | wc -l)` is down from 706 to 517 for a fresh build because not calling `import_array` causes an "unused function" warning for each file.

I took the liberty of modernizing some of the Cython code while I was at it.

AFAIC, this can be merged; the only thing I can't seem to solve is a similar warning related to `_import_umath`. I'm not sure if that can be solved with current Cython and Numpy. If you know how to get rid of it, feel free to answer [my SO question](http://stackoverflow.com/q/14201192/166749) about this.