Added is_control function, method, and tests.
Add rustpkg tutorial to the official tutorials.

Three things in this commit:

1. Actually build the rustpkg tutorial. I didn't know I needed this when
   I first wrote it.
2. Link to it rather than the manual from the
   tutorial.
3. Update the headers: most of them were one level too deeply
   nested.
visit::Visitor refactor: replace (&mut BorrowckVisitor, @BorrowckCtxt) with &mut BorrowckCtxt.
visit::Visitor refactor: fold moves.rs VisitContext into ComputeModesVisitor.
remove apostrophe where it's is not used as a contraction
Fix signature of Result in tasks tutorial. Closes #8343
Register new snapshots
auto merge of #9454 : alexcrichton/rust/snapshot, r=thestinger
std::local_data: Fix document code
auto merge of #9439 : steveklabnik/rust/build_rustpkg_tutorial, r=brson

Three things in this commit:

1. Actually build the rustpkg tutorial. I didn't know I needed this when
   I first wrote it.
2. Link to it rather than the manual from the
   tutorial.
3. Update the headers: most of them were one level too deeply
   nested.
auto merge of #9449 : dckc/rust/patch-1, r=alexcrichton
auto merge of #9450 : jzelinskie/rust/tutorial-tasks-result-signature, r=alexcrichton
auto merge of #9453 : pnkfelix/rust/fsk-further-syntax-visit-refactors, r=alexcrichton

r? anyone.

Part of #7081.

More refactorings of the syntax::visit::Visitor implementations, folding so-called "environments" into the visitor impl when the latter was previously a trivial unit struct.

As usual, this refactoring only applies when the environments are not actually carrying state that is meant to be pushed and popped as we traverse the expression.  (For an example where the environment *isn't* just passed through, see the `visit_fn` in `liveness.rs`.)

Got rid of a bit of @-allocation in borrowck.

Both cases should be pure-refactorings.
auto merge of #9457 : klutzy/rust/doc-fix, r=alexcrichton
Do not imply that str is sometimes null-terminated.
Part of #7081: Fold remainder of typeck's visit env into their visitor structs.
auto merge of #9462 : SimonSapin/rust/patch-3, r=huonw
auto merge of #9463 : pnkfelix/rust/fsk-syntax-visit-refactor-rest-of-typeck, r=huonw

r? anyone

Also got rid of a bit of `@mut` allocation.  (Though not the monster that is `@mut FnCtxt`; that case is documented already on #7081; if we attack it, it will probably be its own ticket, not part of #7081.)
Correctly encode item visibility in metadata

This fixes private statics and functions from being usable cross-crates, along
with some bad privacy error messages. This is a reopening of #8365 with all the
privacy checks in privacy.rs instead of resolve.rs (where they should be
anyway).

These maps of exported items will hopefully get used for generating
documentation by rustdoc

Closes #8592
rust: Don't call libc::exit

This appears to eliminate the common errors with assertions failures
in rust_initialize_rt_tls_key.