First pass at a guide to compiler plugins

@steveklabnik, are you interested in looking this over?
I'm not sure about more thorough documentation; those are pretty much the full rules as I know them.  I tried writing an example but it's hard to say whether it's clearer than simply listing the rules. What do you think of including something like this?

> ```rust
> macro_rules! m1 (() => (()))
> 
> // visible here: m1
> 
> mod foo {
>     // visible here: m1
> 
>     #[macro_export]
>     macro_rules! m2 (() => (()))
> 
>     // visible here: m1, m2
> }
> 
> // visible here: m1
> 
> macro_rules! m3 (() => (()))
> 
> // visible here: m1, m3
> 
> #[macro_escape]
> mod bar {
>     // visible here: m1, m3
> 
>     macro_rules! m4 (() => (()))
> 
>     // visible here: m1, m3, m4
> }
> 
> // visible here: m1, m3, m4
> ```
> 
> When this library is loaded with `#[phase(plugin)]` extern crate, only `m2` will be imported.

For more real-world examples I think it's best to look at actual libraries; it's hard to explain in isolation the scoping requirements and how they achieve them.