[WIP] Make RCP always non-null

This is just to see how fast things get. The Cython interface can't currently work with non-null RCP pointers.

When running benchmarks, I don't see any significant difference in speed.

This is the same as #74 but using my local branch.