Better Negative Matching Messages

Introduces the new interface `Counterpart\Negative` that, when used, will be check for with the `LogicalNot` matcher to give better error messages.

The `Negative` interface is also used in some appropriate places in the core matchers as well.