Higher-ranked trait bounds

A description of higher-ranked trait bounds, which is the remaining piece needed to make unboxed closures equal to normal closures.

[Rendered view.](https://github.com/nikomatsakis/rfcs/blob/hrtb/active/0000-higher-ranked-trait-bounds.md)


should we allow the `for <'a>` format at the `fn` *definition* point as well (in addition to the type expression form)?

i.e. support as an *item* `for <'a> fn(x: &'a mut int) -> &'a mut int { *x = *x + 1; x }`