Ownership guide

This is a work in progress, but this should get *extensive* review, so I'm putting it up early and often.

This is the start of a draft of the new 'ownership guide,' which explains ownership, borrowing, etc. I'm feeling better about this framing than last time's, but we'll see.
@jaredonline, this is probably not the good place to ask such questions. Stackoverflow and reddit are more appropriate.

Anyway, the lifetime annotation here refers to the internals of the trait object. `Box<SomeTrait + 'a>` basically means "any actual value inside this trait object contains references which live at least as long as `'a`". This is needed because you can implement traits for arbitrary types, including types with references inside them:

```rust
trait GetInt { fn get_int(&self) -> int }

struct WithoutReferences { value: int }

struct WithReferences<'a> { value: &'a int }

impl GetInt for WithoutReferences {
    fn get_int(&self) -> int { self.value }
}

impl<'a> GetInt for WithReferences<'a> {
    fn get_int(&self) -> int { *self.value }
}

let x = 10i;
let v = WithReference { value: &x };
let o: Box<GetInt> = box v;  // `o` should not outlive `x`, otherwise bad things can happen
```
If you didn't have a way to specify lifetimes of these references, the compiler wouldn't be able to reason about lifetimes around trait objects.