librustc: Allow mutation of moved upvars.
librustc: Update unused mut lint to properly track moved upvars.
Add tests.
auto merge of #16253 : luqmana/rust/muv, r=nikomatsakis

Fixes #11958.