Added the squozen patprep function, added unit tests to the
patprep `c` code, and ensured that the rust version works the
same way. The only remaining code slowdown is that re-allocating
the Vec 50 million times turns out to be slower than re-using the
same slice of RAM over and over and over.