Implemented and fixed a handful of instructions:

* Reimplemented the [ and ] instructions to be correct.
* Implemented the ? instruction using rlib.rrandom (with a shim for running on cpython)
* Added some more demo programs
* Adjusted the order of operations in pointer.tick()
* Discovered a bug whereby if the pointer is outside the program space, with a delta that would take it into the program space, the wrapping function will never allow it to re-enter the program space.