Unboxed closures

A relatively complete description of by reference closures that aims to encompass entirety of current thinking, except for bound lifetimes.

cc @pcwalton
This (and the next couple of example functions) should be `Fn<(int,), int>` rather than `Fn<int, int>`, I think?