Revert readline optimization and add test
rustc: Add legacy_records field to the type context
rustc: In lint, forbid structural records unless legacy_records is on
Add #[legacy_records] crate attribute

In rustc, rustdoc, rusti, syntax, and std.
core: Allow legacy records in in a few modules

Because of macros, #[allow(structural_records]] in
extfmt, gc, os, pipes, and run. Will need a snapshot.
compiletest: Allow legacy records

But also remove most uses of structural records.
testsuite: Add #[allow(structural_records)] to pipes tests

These will require a snapshot.
testsuite: Allow structural records in two tests that use pipes
syntax: Don't add an extra space before the last comma...

...when printing struct update expressions.
rustc: Check struct field types when heap memory lint checks are enabled
testsuite: Remove structural records from remaining compile-fail tests
testsuite: De-record pretty tests
testsuite: De-record most bench tests
cleanup, refactoring
refactoring to make codemap its own module