std: Rename {push,read}_bytes to {push,read}_exact

These methods can be mistaken for general "read some bytes" utilities when
they're actually only meant for reading an exact number of bytes. By renaming
them it's much clearer about what they're doing without having to read the
documentation.

Closes #12892
Remove RefCell::{with, with_mut}

These are superfluous now that we have fixed rvalue lifetimes and Deref.
Clean up marker types and Unsafe initialization
syntax: allow `trace_macros!` and `log_syntax!` in item position.

Previously

    trace_macros!(true)
    fn main() {}

would complain about `trace_macros` being an expression macro in item
position. This is a pointless limitation, because the macro is purely
compile-time, with no runtime effect. (And similarly for log_syntax.)

This also changes the behaviour of `trace_macros!` very slightly, it
used to be equivalent to

    macro_rules! trace_macros {
        (true $($_x: tt)*) => { true };
        (false $($_x: tt)*) => { false }
    }

I.e. you could invoke it with arbitrary trailing arguments, which were
ignored. It is changed to accept only exactly `true` or `false` (with no
trailing arguments) and expands to `()`.
Copy-edit a sentence about borrowing references
auto merge of #12907 : alexcrichton/rust/issue-12892, r=brson

These methods can be mistaken for general "read some bytes" utilities when
they're actually only meant for reading an exact number of bytes. By renaming
them it's much clearer about what they're doing without having to read the
documentation.

Closes #12892
auto merge of #13052 : sfackler/rust/clean-refcell, r=alexcrichton

These are superfluous now that we have fixed rvalue lifetimes and Deref.

I'd also like to kill off `get` and `set`, but that'll be a large change so I want to make sure that we actually want to do that first.
auto merge of #13062 : mbrubeck/rust/doc-edit, r=alexcrichton

This is a very minor edit to the tutorial section on references.

Reading this section for the first time, I stumbled on the phrase "a reference can be borrowed to any object."  Its meaning was clear enough once I got it, but I had to re-read it a couple of times to parse it correctly.  Something about the passive voice plus the way "reference to any object" is split up by the verb phrase.  How about this instead?
rustc: Remove special treatment for Freeze and NoFreeze

Fixes #12577
arena: Remove Freeze / NoFreeze
sync: Remove Freeze / NoFreeze
std::comm: Remove Freeze / NoFreeze
cell: Remove Freeze / NoFreeze
std: Remove the Freeze kind and the NoFreeze marker
test: Remove Freeze / NoFreeze from tests
doc: Remove Freeze / NoFreeze from docs
std::os: Handle FormatMessage failure

`FormatMessageW()` is called by `std::os::last_os_error()` to convert
errno into string, but the function may fail on non-english locale.
I don't know why it fails, but anyway it's better to return errno
than to `fail!()` in the case.

Fixes #13075
Fixes #13073
auto merge of #13078 : klutzy/rust/issue-13075, r=alexcrichton

`FormatMessageW()` is called by `std::os::last_os_error()` to convert
errno into string, but the function may fail on non-english locale.
I don't know why it fails, but anyway it's better to return errno
than to `fail!()` in the case.

Fixes #13075
Fixes #13073
std: Remove the get() method from RefCell wrappers

This method has been entirely obsoleted by autoderef, so there's no reason for
its existence.
syntax: Fix fallout of removing get()