Set the `non_uppercase_statics` lint to warn by default
Update the `unused` lint group to include more lints
Improve the `non_snake_case` lint to give better suggestions
Correct error message for invalid `ref`/`mut` bindings

Closes #15914.
Report trait/impl sig inconsistency before method/body inconsistency

Closes #15657.
Change rustc pretty-printing to print [T, ..n] instead of [T, .. n]
Move the lint for the stability lints to the method name only

Closes #17337.
auto merge of #17215 : P1start/rust/lints, r=alexcrichton

This updates the `unused` lint group to include more lints, updates the `non_snake_case` lint to give better suggestions, adds a note explaining why a lifetime cannot be elided, and tweaks various error messages. This also updates the `non_uppercase_statics` lint to be warn-by-default to match the other naming lints. For statics, this lint is particularly useful, because a non-uppercase static can easily collide with a pattern binding, resulting in very confusing errors.

Closes #15914.
Closes #15657.
Closes #17337.