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.
I didn't have internet when I wrote this and so kept it conservative. I _thought_ so but I'm also jet-lagged to hell, sooo :)

Sent from my iPhone

> On Nov 4, 2014, at 13:58, Huon Wilson <notifications@github.com> wrote:
> 
> In src/doc/guide-ownership.md:
> 
> > +With that in mind, let's learn about ownership.
> > +
> > +# Ownership
> > +
> > +At its core, ownership is about 'resources.' For the purposes of the vast
> > +majority of this guide, we will talk about a specific resource: memory. The
> > +concept generalizes to any kind of resource, like a file handle, but to make it
> > +more concrete, we'll focus on memory.
> > +
> > +When your program allocates some memory, it needs some way to de-allocate that
> > +memory. Imagine a function `foo` that allocates four bytes of memory, and then
> > +never deallocates that memory. We call this problem 'leaking' memory, because
> > +each time we call `foo`, we're allocating another four bytes. Eventually, with
> > +enough calls to `foo`, we will run our system out of memory. That's no good. So
> > +we need some way for `foo` to deallocate those four bytes. It's also important
> > +that we don't deallocate too many times, either. Without getting into the
> FWIW, too many times is the worst case: it is undefined behaviour and can lead to memory corruption and security holes, while a leak is just a piece of memory that is never touched again.
> 
> \
> Reply to this email directly or view it on GitHub.