Unboxed closures

A relatively complete description of by reference closures that aims to encompass entirety of current thinking, except for bound lifetimes.

cc @pcwalton
> In both cases, there's tension between the assumed common case and the defaults elsewhere in the language. The most common case is assumed to be by-reference mutating closures. But everywhere else the language defaults to by-value and immutable. The RFC is siding with consistency in one case (by-value) but convenience in the other case (mutable). I'm not saying this is necessarily wrong, but I do think it deserves an explicit defense at least.

@pcwalton performed an analysis of the codebase showing that by-value captures are *far far* the most common case. The `self` parameter taken by the closure is a separate issue.