Unboxed closures

A relatively complete description of by reference closures that aims to encompass entirety of current thinking, except for bound lifetimes.

cc @pcwalton
> Unfortunately since coherence doesn't know that FnShare, Fn, and FnOnce are mutually exclusive that might run into some problems of its own.

Does https://github.com/rust-lang/rfcs/pull/48 cover this at all?

(As much as it pains me to say, would it be at all reasonable to make `Fn`/`FnShare`/... special in this regard?)