New guide: crates and modules

This is an almost-done draft of a guide on crates and modules. This is a hard guide to get right, I had to remove a chunk of the Guide because it was confusing.

I've also pushed up https://github.com/steveklabnik/phrases which has matching code. Whenever we finish this guide, I think it'd be good to have a sample crate like this in the rust-lang org for people to compare against. The hardest part of a guide like this is that it depends on multiple files being correct, and being able to point to a repository would be very helpful.

Things yet to do:

1. external crates via cargo
2. documentation

I'm super open to still revising this if it's still confusing. There's been a lot of Reddit discussion about the module system, and I tried to incorporate those posts and the comments into this.
In general, all of these kinds of guidelines (whitespace, brace placement, etc) need to go through a revamp and RFC. I haven't made it a priority because it doesn't affect public APIs, so there's not a big commitment. It's also pretty hard to have reasoned discussion about.

In any case, I'll add this to the TODO file.