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]
Small grammar fix in rustdoc.md

Happened to be reading through
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.
debuginfo: Make GDB tests use line breakpoints like done in LLDB tests.

On some Windows versions of GDB this is more stable than setting breakpoints via function names.
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)