Use defvar for rust-top-item-beg-re instead

Since rust-top-item-beg-re hasn't been defined yet, using defvar instead of
setq is more appropriate here (and also silences compilation warnings).
Implement fallbacks for functions unavailable in older versions of Windows
etc: Add box as a keyword to editor configs

This keyword is about to be used much more often than it was a few weeks ago,
it's time to tell editors about the new keyword.
Refactor writeback code. cc #5527
Remove error message that refactor suppresses
rustc: Fix enum variant privacy across crates

The code in resolve erroneously assumed that private enums weren't visited, so
the logic was adjusted to check to see if the enum definition itself was public.

Closes #11680
Add documentation for Windows compatibility layer and remove unneeded attributes
Add testcase for #11493
Move Windows compatibility layer to libnative
std: Remove bump_box_refcount. Deprecated and unused. Deprecused.
std: Doc typos
std: Reorder definitions in cast

Prioritize `transmute` and `forget`.
std: Change names of transmute's type parameters

from L, G to T, U. I don't know what L and G mean.
T, U easier to understand.
std: Small doc tweaks
Change the biguint documentation example to reflect deprecated owned vector
mk: Fix make install

Forgot to update the installation procedure with the knowledge that libcore is
only available as an rlib, not as a dylib.

Closes #14026
std: Modernize the local_data api

This commit brings the local_data api up to modern rust standards with a few key
improvements:

* The `pop` and `set` methods have been combined into one method, `replace`

* The `get_mut` method has been removed. All interior mutability should be done
  through `RefCell`.

* All functionality is now exposed as a method on the keys themselves. Instead
  of importing std::local_data, you now use "key.replace()" and "key.get()".

* All closures have been removed in favor of RAII functionality. This means that
  get() and get_mut() no long require closures, but rather return
  Option<SmartPointer> where the smart pointer takes care of relinquishing the
  borrow and also implements the necessary Deref traits

* The modify() function was removed to cut the local_data interface down to its
  bare essentials (similarly to how RefCell removed set/get).

[breaking-change]
auto merge of #13835 : alexcrichton/rust/localdata, r=brson

This commit brings the local_data api up to modern rust standards with a few key
improvements:

* All functionality is now exposed as a method on the keys themselves. Instead
  of importing std::local_data, you now use "key.set()" and "key.get()".

* All closures have been removed in favor of RAII functionality. This means that
  get() and get_mut() no long require closures, but rather return
  Option<SmartPointer> where the smart pointer takes care of relinquishing the
  borrow and also implements the necessary Deref traits

* The modify() function was removed to cut the local_data interface down to its
  bare essentials (similarly to how RefCell removed set/get).

[breaking-change]
std: Mark timeout methods experimental

This was intended as part of the I/O timeouts commit, but it was mistakenly
forgotten. The type of the timeout argument is not guaranteed to remain constant
into the future.
auto merge of #13986 : alexcrichton/rust/box-keyword, r=thestinger

This keyword is about to be used much more often than it was a few weeks ago,
it's time to tell editors about the new keyword.