Features/cython

@jenshnielsen 

Please check this. 
I think the main thing to review are the public names in the purify package, whether they make sense and all.