Improve the error message for missing else clauses in if expressions
auto merge of #18015 : jakub-/rust/issue-4201, r=pcwalton

Closes #4201.
Remove libdebug and update tests.
libsyntax: Remove all uses of {:?}.
librustc: Remove all uses of {:?}.
libstd: Remove all uses of {:?}.
liballoc: Remove all uses of {:?}.
librustdoc: Remove all uses of {:?}.
libcollections: Remove all uses of {:?}.
libnative: Remove all uses of {:?}.
librustc: Remove visit_tydesc intrinsic.
librustc: Stop generating visit glue and remove from TyDesc.
librustc: Remove trans::reflect and the opaque and ty_visitor lang items.
libsyntax: Don't accept :? as a format specifier.
librustc: Remove special case for old reflection visitor.