RFC: Macro reform

[Rendered view](https://github.com/kmcallister/rfcs/blob/macro-reform/text/0000-macro-reform.md)
@huonw this is horrifying! I was expecting that we would be able to have a single hygiene system in rustc and any macro system could do what they like - i.e., rustc::resolve would expect all lexical context ids to be 'correct'. macro! would output correct lexical contexts, macro_rules! would output lexical contexts that correspond to the current level of hygiene, etc. I'm not entirely sure if this is possible, because I don't exactly know how hygiene is currently broken.

As far as I see it, being able to do this backwards compatibly after 1.0 is **the** most important issue for macros pre-1.0.