Always parse macro invocations with () or [] as expressions

Parse macro invocations with parentheses or square brackets as expressions no matter the context, and require curly braces or a semicolon following the invocation to invoke a macro as a statement.

Resolves #364.

I think #208 also does this as a by-product of resolving another ambiguity with attributes.

----

Status: Active
RFC document: https://github.com/rust-lang/rfcs/blob/master/text/0378-expr-macros.md