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
* move conjugate to __dispatch__
Relax constraints on methods unicity

They are not viable in case of explicit method calls