I think I stole the current name and other ideas from Hamcrest Matchers.

One thing is the `Matchable` suffix for the wrappers around compared objects. *Diffable*, *Diffed* sounds a bit strange to me. Which is maybe a good thing since makes me think:
 - We're doing more than simple matching. (All this listener events would be overkill if we just want true/false boolean result)

Some other thoughts for a more general point of view:
 - not necessarily both sides need to be of exactly same type. E.g. one (left) side could be some kind of pattern.
 - similar concept may appear to be useful not only for DataTable but for Rows, Cells, and maybe other stuff.