Auto generate Op.{hash,eq,str}

Added __eq__ and __hash__ to Op Class and deleted them in function with props attribute.
This should be replaced by a `__props__ = ()`