librustc: Forbid identifiers that shadow in the same pattern in let

bindings and function arguments.

Issue #14581.

To fix code that this breaks, give the pattern identifiers different names.

[breaking-change]

r? @brson