Add `define_negated_matcher`

This replaces #547.
Fixes #527.
Fixes #493.
It's documented in the YARD docs and I think that's sufficient.  I view it as an advanced API thing and not a normal use case.