Fix nullable comparisons.

matchtag() has gotten much more advanced than upstream Pawn, which tends to not care about commutativity. In our type system, `x = y` is very different from `x == y`.

This patch introduces a commutativity flag to `matchtag` which is used when binary operators are involved. It doesn't imply that the operation is commutative, but that the order of the types themselves is irrelevant.