RFC: Macro reform

[Rendered view](https://github.com/kmcallister/rfcs/blob/macro-reform/text/0000-macro-reform.md)
One thing to note: some of the ways that macros will change, like hygiene, will be (a) a change to the entire system, preventing backwards compatibility from even being possible (i.e., `define_a_macro_in_the_old_way!` won't recover the old semantics), and (b) make things almost strictly better (i.e., the old semantics mainly gets in people's way).

However, the reason it is called `macro_rules!` is that it's not able to define all kinds of macros, only rule-based ones. A construct named `macro!` should be capable of defining procedural macros, and I think that the arrival of procedural macros is an appropriate time to make the name change.