Fix ambiguity in the list of type bounds in matcher macros

This should not be necessary once
https://github.com/mozilla/rust/issues/5902 is fixed.
Enable .not()

Work-around Rust's lack of support for macros expanding to
multiple AST nodes by having each implementation of ExpectationTarget
wrapped in a dummy module.