Guide: strings

I decided to change it up a little today and hack out the beginning of the String guide. Strings are different enough in Rust that I think they deserve a specific guide, especially for those who are used to managed languages.

I decided to start with Strings because they get asked about a lot in IRC, and also based on discussions like this one on reddit: http://www.reddit.com/r/rust/comments/2ac390/generic_string_literals/

I blatantly stole bits from our other documentation on Strings. It's a little sparse at current, but I wanted to start somewhere.

I am not exactly sure what should go in "Best Practices," and would like the feedback from the team on this. Specifically due to comments like this one: http://www.reddit.com/r/rust/comments/2ac390/generic_string_literals/citmxb5
@huonw Ugh, really? That's very surprising. A string literal is a compile-time constant, not a mutable value, so I would have to consider it a bug to allow `let s: &mut str = "test"`.

In fact, it's definitely a bug, because it's not just a quirk of string literals. Apparently any `&str` can be coerced to `&mut str`, and `&mut str` does not impose any aliasing restrictions. As near as I can tell, the type `&mut str` is actually being treated as if it were `&str`.