Revert "libcore: remove unnecessary deref"

This reverts commit 9860fe10a19cc4997e58861df905f8dbe4de3c5b.
librustc: Remove `ptr::addr_of`.
librustc: Implement `reinterpret_cast` in terms of `transmute`.
librustc: Rename `reinterpret_cast` to `transmute_copy` and remove the intrinsic
librustc: Remove the legacy mode in the type visitor intrinsic.
libfuzzer: De-mode the fuzzer.
test: Remove #[legacy_modes] from the test suite.
librustc: Make `&fn` by-copy by default and remove the mode from `frame_address`.
librustc: Remove the concept of modes from the compiler.

This commit does not remove `ty::arg`, although that should be
possible to do now.
test: Fix tests.
librustc: Change labels to use the lifetime notation `'`.
librustc: Forbid type implementations on typedefs.
test: Fix more tests.
librustc: Fix merge fallout.
auto merge of #6080 : pcwalton/rust/demode-everything, r=pcwalton

r? @brson