I think the default of `"not #{description}"` needs to go in `Negation`, because there are custom matchers that do not inherit from `BaseMatcher`, and will get a `NoMethodError` as the implementation currently exists since `Negation` assumes _every_ matcher has a `description_when_negated`.  It's an optional part of the matcher protocol so we can't assume it'll always be there.