Add detection of dead struct fields
Remove the dead code identified by the new lint
Fix an LLVM assertion when matching against static strings

Fixes #8315
Fixes #11940
Remove a redundant bitcast from fail!() handling
Mark relevant structs with repr(C)
Add missing repr(C) annotations to mutex.rs
librustc: Implement sugar for the `FnMut` trait
auto merge of #14606 : pcwalton/rust/fn-trait-sugar, r=alexcrichton

r? @alexcrichton
Fix more misspelled comments and strings.
auto merge of #14696 : jakub-/rust/dead-struct-fields, r=alexcrichton

This uncovered some dead code, most notably in middle/liveness.rs, which I think suggests there must be something fishy with that part of the code.

The #[allow(dead_code)] annotations on some of the fields I am not super happy about but as I understand, marker type may disappear at some point.
auto merge of #14752 : jakub-/rust/issue-11940, r=alexcrichton

Fixes #8315
Fixes #11940
auto merge of #14764 : jbcrail/rust/fix-more-comments, r=alexcrichton
rustc: Remove ~[T] from the language

The following features have been removed

* box [a, b, c]
* ~[a, b, c]
* box [a, ..N]
* ~[a, ..N]
* ~[T] (as a type)
* deprecated_owned_vector lint

All users of ~[T] should move to using Vec<T> instead.