Add 'no_struct_literal_expr' non-terminal to macro_rules.
auto merge of #17172 : SiegeLord/rust/no_struct_literal_expr, r=pcwalton

This is necessary due to [RFC 25](https://github.com/rust-lang/rfcs/blob/master/complete/0025-struct-grammar.md). Without it, the eager parsing of the `expr` nonterminal precludes writing constructs similar to the built in ones like `if`, `while` and `for`-loop (see the added test for an example). The name for this non-terminal was lifted from the grammar in the manual.