RFC: Macro reform

[Rendered view](https://github.com/kmcallister/rfcs/blob/macro-reform/text/0000-macro-reform.md)
I was expecting that we would have two essentially independent hygiene systems inside the compiler (i.e. identifiers would go from storing just `ctxt: SyntaxContext` to storing `ctxt: SyntaxContext, improved_ctxt: SyntaxContext`); it's pretty sad, but it seems to me to be the only way we can possibly aim to improve hygiene without breaking backwards compatibility.