Guide: closures

As @ben0x539 points out, I think saying something like "`proc()`s are allowed to consume values that they capture, and thus have to be restricted to being called once for soundness reasons: any value consumed would be invalid on a second call." 

The allocation on the heap is not relevant to the called-once soundness, just to providing owned access to the captures with a uniform representation for the `proc` value, exactly like a trait object. e.g. with unboxed closures we'll be able to have stack-allocated once closures. And, conversely allocating on the heap doesn't imply the closure has ownership of the value (at least, not unique ownership, which is I think what you're getting at here), e.g. `Rc<Fn<(int,), int>` (i.e. a shared `int -> int` closure) will be a thing with unboxed closures (+ DST).