Fix various issues with complex numbers

* complex number and numpy_binary_op did not play well together
* conj and conjugate where not available as methods
* more validation