RFC: new lifetime elision rules

[Rendered](https://github.com/aturon/rfcs/blob/lifetime-elision/active/0000-lifetime-elision.md)

Note: the core idea for this RFC and the initial survey both came from @wycats.
For an `fn` method definition, i.e. one that occurs in the scope of an `impl` block or as the default method in a `trait` item, are the lifetimes that occur in the implementing type (in the former case) or the trait (in the latter case) also considered to be input positions?

In other words, is a method considered to be in the scope of its `impl` header for the purposes of lifetime elision?

(I will follow up to this comment with a concrete set of examples elaborating my question in a moment.)