syntax: Accept meta matchers in macros

This removes the `attr` matcher and adds a `meta` matcher. The previous `attr`
matcher is now ambiguous because it doesn't disambiguate whether it means inner
attribute or outer attribute.

The new behavior can still be achieved by taking an argument of the form
`#[$foo:meta]` (the brackets are part of the macro pattern).

Closes #13067
Convert most code to new inner attribute syntax.

Closes #2569
auto merge of #13162 : alexcrichton/rust/attr-syntax, r=brson

This is the rebasing of #13068 with a fix for #13067 as the first commit.