Add lint for unused lifetimes

A step towards  #12805.

 I will extend this PR to warn for things like this as well:
```
struct Foo<'a> {
    a: int
}
```
This shouldn't be required, `self` is present in the arguments as well.