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.
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.
auto merge of #9471 : brson/rust/rustexit, r=thestinger

This appears to eliminate the common errors with assertions failures
in rust_initialize_rt_tls_key.
comment changes only
cleanup
Stop accepting 'impl ...;', require {} instead

Progress on #7981
renumbered due to bug shuffling
auto merge of #9336 : alexcrichton/rust/issue-7981, r=catamorphism

Progress on #7981

This doesn't completely close the issue because `struct A;` is still allowed, and it's a much larger change to disallow that. I'm also not entirely sure that we want to disallow that. Regardless, punting that discussion to the issue instead.
mark functions internal if not building a library

the entry point is wrapped with what should be the only public function
added test case for tokenization of macro_rules
Update AUTHORS.txt
Don't use libc::exit. #9473

This can cause unexpected errors in the runtime when done while
scheduler threads are still initializing. Required some restructuring
of the main_args functions in our libraries.
Remove the annihilate function from the crate map. Fixes #8431
auto merge of #9474 : thestinger/rust/internal, r=alexcrichton

the entry point is wrapped with what should be the only public function