Guide Redux: Pointers

This is super, super WIP, but I'm going to go get lunch for a while, and figured I'd toss my work up here in case anyone wants to see my work as I do it.

This contains a new introductory section explaining the basics of pointers, and some pitfalls that Rust attempts to solve. I'd be interested in hearing how my explanation is, as well as if this belongs here. Pointers are such a crucial concept, I don't mind having a beginners' section on them in the main docs, even though our main audience is supposed to understand them already. Reasonable people may disagree, however.
Variables are always on the stack, as opposed to other arbitrary memory locations. It might be nice to use the word "stack" here, to avoid the possibility of anyone getting confused and thinking they can be elsewhere.

> When you create a new variable binding, you're giving a name to a location on the stack. Like this:

With this change, you should also probably change the locations to decrease instead of increase, because the stack grows downwards. Yes, the compiler could plausibly reorder the allocas, but it's simpler to pretend there's no optimization going on. They should also differ by 8 bytes (instead of the 32 bytes you have in the current example).