return &mut T from the arenas, not &T

The arenas write the value to memory and then return a non-aliasing
reference to it. The returned reference can be mutable and can be
coerced to an immutable one.

[breaking-change]
Respect mut in &mut str in astconv

Closes #17361
Add regression test for issue #17361
Remove double negation from sqrt's doc comment
Add ptr::RawMutPtr to prelude

Closes https://github.com/rust-lang/rust/issues/18196
Guide: Fix use of sqrt() in example
Remove unnecessary clone in ascii.rs
Update code with new lint names
Turn on warning for use of deprecated lint names
Add regression test for lint deprecation
reference: note the existence of UnsafeCell
reference: slices are now regular types
reference: document unwinding unsafety issues
Diagnostic: resolve bare fn in expected closure

Closes #15273 (I did not find how to get the identifier in the message
:/)

Also creates the span_help! macro associated with #18126
Fix ICE assigning methods to local variables

This just adds some missing match cases in ty and trans

Closes #18412
Add regression test for issue #18412
Fix `core::num::CheckedDiv::checked_div` documentation

The "/" was probably generated by a `gq` in vim.
rustc: fail if LLVM is passed an invalid triple

This changes create_target_machine to correctly return a Result (Since
the underlying LLVM function can fail and return NULL)
Remove an empty file from librustc
Use common variants for open and close delimiters

This common representation for delimeters should make pattern matching easier. Having a separate `token::DelimToken` enum also allows us to enforce the invariant that the opening and closing delimiters must be the same in `ast::TtDelimited`, removing the need to ensure matched delimiters when working with token trees.