syntax: add some more extension helper methods
syntax: allow quasiquoter to inline `Vec<Stmt>`s
syntax: promote a comment on PatEnum into a docstring
Fix a bug pretty printing `match { 5i } { _ => { } }`

This also always puts a trailing comma on the last non-block expr.
syntax: add support for quoting arms
auto merge of #16037 : erickt/rust/quote_arm, r=acrichto

This adds support for `quote_arm!(cx, $pat => $expr)`, and `macro_rules!(($a:arm) => (...))`. It also fixes a bug in pretty printing, where this would generate invalid code:

```
match { 5i } {
    1 => 2,
    _ => 3,
}
```

It would generate this code:

```
match { 5i } {
    1 => 2
    _ => 3
}
```

Finally, it adds a couple helper methods to `ExtCtxt`.