Add a new Digest.result_bytes convenience function.
std::result: Remove function `map_opt`

This function has never had any users in the tree
Disable zlib/libffi when configuring LLVM

This should help bring fewer dependencies in to the snapshots.

Closes #9397
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.
librustc: Change fold to use traits instead of `@fn`.
librustc: Remove garbage collected functions from front/{config,test} and metadata/{tydecode,tyencode}
librustc: Port the pretty printer annotation infrastructure to use traits instead of garbage collected functions.
librustc: Make the fall-through case in match not use garbage collected functions
librustc: Don't use garbage-collected closures to store cleanups.
librustc: Remove garbage-collected functions from util/common.
librustc: Remove the remaining direct uses of `@fn` from librustc.
librustc: Change the ID visitor to use traits instead of garbage-collected functions.
librustpkg: Fix diagnostic invocation syntax in librustdoc, librusti, and librustpkg.
libsyntax: Remove some more `@fn` uses
libsyntax: Remove some more `@fn`s from the macro expander
libsyntax: Introduce routines and remove all `@fn`s from libsyntax save the old visitor
librustc: Remove `@fn` managed closures from the language.
librusti: Eliminate `@fn`.