Unify attributes and macros to use `@` sigil, redux

A revised version of @pcwalton's RFC, incorporating a more precise description of conflicts and a description of feedback.

[Rendered view.](https://github.com/nikomatsakis/rfcs/blob/macros-and-attrs/active/0000-macro-attribute-syntax.md)
But are they interpreted as statement or expression macros (#364)? I would suggest that `()` and `[]` macros be always interpreted as expressions, and `{}` be interpreted as statements when in statement position (which are the rules used in #378).