omit irrelevant properties in diff

Properties that match do not contribute to understanding the test
failure.
omit extra properties on the actual in diff
when matching properties with matchers, refer to them
increase cohesion
migrate SubstringMatcher to new diff API
use new diff API everywhere & remove old diff API