Guide macros and unsafe

The last two sections of the guide, and a small conclusion. I suck at conclusions.

I also realized I never covered strings, so I'm going to put that section up before we're actually 'done.'
The whole paragraph gives the impression that `unsafe` in a non-FFI context is only for when you're dealing with shared memory. But it's also useful for when you have a single owner and want to manipulate a raw pointer, via pointer arithmetic for instance, in a way that the compiler cannot prove sound, which is what some iterator implementations do under the hood.

I don't really have good suggestions, though. I think the way to go could be to enumerate the basic operations that are considered unsafe (raw pointer arithmetic, dereferencing, asm! etc.) and then how you can use them to build safe abstractions with enough care. I guess it somewhat ties to http://doc.rust-lang.org/guide-pointers.html#raw-pointers etc.