New ownership guide

This is the start of the new "Ownership" guide, to replace the lifetimes guide.

I'm still working on it, but I wanted to share my progress, as this guide is _very_ important, and I'd like as many eyes on it as possible. :smile: 
"This code compiles" is a pretty common phrase in my experience (more
common than "this code can be compiled"). The compiler compiles. The
programmer programs.

-Manish Goregaokar

On Thu, Sep 11, 2014 at 9:30 AM, OGINO Masanori <notifications@github.com>
wrote:

> In src/doc/guide-ownership.md:
>
> > +
> > +We need a way to tell the compiler that we expect `a_string` must be valid
> > +as long as a reference to the struct itself is valid. We can do this with an
> > +**explicit lifetime annotation**:
> > +
> > +```{rust}
> > +struct SomeStruct<'struct> {
> > +    a_string: &'struct str,
> > +}
> > +
> > +fn main() {
> > +    let x = box SomeStruct { a_string: "A string" };
> > +}
> > +```
> > +
> > +This code compiles. We have two additions: a `<'struct>` and a `&'struct`.
>
> I felt strange when I read "This code compiles." here, because I think "a
> programmer compiles code." "This code works" or "This code can be compiled"
> would be natural for me. What do you think?
>
> —
> Reply to this email directly or view it on GitHub
> <https://github.com/rust-lang/rust/pull/17138/files#r17403239>.
>