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.
@bstrie The other predominant case is:
```rust
fn difference<'a>(&'a self, other: &'a HashSet<T, H>) -> SetAlgebraItems<'a, T, H>;
```
where the two input lifetimes are required to match.

@glaebhoerl Take note -- this is a case where even the rules for input positions don't give you what you want.