Allow asymmetric equality testers to preempt their symmetric brethren

- Also allow them to be compared to each other properly.

Fixes #540