Improve error message for range in match

Range allows char and numeric types, but previous error message
mentioned only numeric types.
auto merge of #14743 : Sawyer47/rust/range-msg, r=huonw

Range allows char and numeric types, but previous error message
mentioned only numeric types.
Add detection of dead struct fields
Remove the dead code identified by the new lint