RFC: Macro reform

[Rendered view](https://github.com/kmcallister/rfcs/blob/macro-reform/text/0000-macro-reform.md)
Why would a syntax extension want to link itself in at runtime? It injects a runtime dependency on librustc, so most (all?) syntax extensions have a separate crate for runtime support (e.g. regex and regex_macros, or phf and phf_mac).