Remove Times trait

`Times::times` was always a second-class loop because it did not support the `break` and `continue` operations. Its playful appeal was then lost after `do` was disabled for closures. It's time to let this one go.
Check enum and struct representability properly (issues #3008 and #3779)
Add compile-fail tests for non-representable structs and enums
Consider types that contain fixed-length-zero vectors of themselves as non-representable until #11924 is resolved
rustc: Add the __tt_map_insert and __tt_map_get_expr macros
rustc: Introduce a new diagnostic code registry

This provides a way to create stable diagnostic codes, while keeping
the overal burden on compiler writers low, and introducing a way to
incrementally provide extended documentation of diagnostics.
Introduce more diagnostic infrastructure
rustc: Convert borrowck errors to new diagnostic macros
rustc: Add the --explain flag
Teach rustc to identify which errors have extended diagnostics
syntax: Convert ext fatals to new diagnostics