Wrap operators in python dunder methods where possible

This is still WIP.  Needs work on variable arity methods (__pos__, __add__) and template classes.

The PR is to let people know the work is here, tell me if that is annoying!