Re-write much of likelihood in Cython

This is an overhaul of the backwards integration likelihood calculation. The integration, etc. are now all written in fairly low-level Cython with memory views.