Output a note when lifetimes cannot be elided from functions
Add an explanatory note when calling a closure via `&`

Closes #15506.
Change the `use of moved value` error to be more accurate

Previously it output `partially moved` to eagerly. This updates it to be more
accurate and output `collaterally moved` for use of values that were invalidated
by moves out of different fields in the same struct.

Closes #15630.
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]
Clarify some borrowck errors

Closes #17263.