Compiler [Typechecker]: Improved handling of NOT in type_binop(). Fixes the case mixed - (mixed|zero) aka (!zero) - mixed which used to result in !(mixed|zero) rather than the expected __unknown__ Fixes several warnings.