Add PointerKind to LpDeref
Prohibit assignment to `&mut` pointers that are found in frozen or borrowed locations.

Fixes #8625.
Since we assume that GDB output is UTF-8, make sure it is so on all platforms.
Otherwise it'll choose some "appropriate" platform-specific default (e.g. CP1252 on Windows).
Un-disabled debug info tests on Windows.
Make rekillable consistent with unkillable

As for now, rekillable is an unsafe function, instead, it should behave
just like unkillable by encapsulating unsafe code within an unsafe
block.

This patch does that and removes unsafe blocks that were encapsulating
rekillable calls throughout rust's libs.

Fixes #8232
Testing rekillable fails when called from outside an unkillable block
rustpkg: Implement --version command-line option

Now, rustpkg --version does something useful!
Don't make the runtime exit on illegal calls
Decrement unkillable counter before failing
Fix valgrind suppression on mac

This callstack changed when the FFI did. I am still a little frightened by
this suppression.
std: Make vec::from_elem failure-safe
Rewrote module tutorial
auto merge of #8757 : vadimcn/rust/debug-info-tests, r=brson

Now that new LLVM has landed, the debug info works on Windows as well.   Most existing tests pass, except for the following four, which I left disabled for now:
lexical-scope-in-for-loop
lexical-scope-in-if
lexical-scope-in-match
lexical-scopes-in-block-expression

Also, fixed a small problem with the debug info test runner.
Rebased and replaced yield with deschedule
auto merge of #8773 : catamorphism/rust/rustpkg-version-flag, r=anasazi

r? anyone. Now, rustpkg --version does something useful!
Rename UnsafeAtomicRcBox to UnsafeArc. Fixes #7674.
fix typo in rust-mode.el
auto merge of #8779 : brson/rust/macsupp, r=thestinger

This callstack changed when the FFI did. I am still a little frightened by
this suppression.

cc #8253
std: use ArcData rather than c_void in UnsafeArc.

This means that fewer `transmute`s are required, so there is less
chance of a `transmute` not having the corresponding `forget`
(possibly leading to use-after-free, etc).
auto merge of #8780 : brson/rust/from_elem, r=thestinger