add relational overloads to python

and tests
fix more, moreeq

there was a problem with operation caching in complex programs because of
the way we were swapping pointers