RFC: Add a matches!(expression, pattern) macro.

Rendered view: https://github.com/SimonSapin/rfcs/blob/matches-macro/active/0000-matches-macro.md

**Please note:** This is different from the [`if let`](https://github.com/rust-lang/rfcs/pull/160) proposal. I believe the two proposals are complementary rather than competing.

It's worth noting that the benefit of `matches!()` over `is` is that `matches!()` can very easily allow for alternative patterns, as is being suggested here. However `is` cannot support alternative patterns without either being confusing (because `|` is a valid operator that one would expect to operate on the `bool` result of the `is` operator) or requiring additional syntax to enclose the set of patterns.

While I appreciate the syntactic simplicity of `is`, this suggests that `matches!()` may be the better approach (what with being implementable as a `macro_rules!` macro and not requiring the language grammar be extended in any way).