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
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
Disallow char literals which should be escaped

As documented in issue #7945, these literal identifiers are all accepted by rust
today, but they should probably be disallowed (especially `'''`). This changes
all escapable sequences to being *required* to be escaped.

Closes #7945
auto merge of #9335 : alexcrichton/rust/issue-7945, r=thestinger

As documented in issue #7945, these literal identifiers are all accepted by rust
today, but they should probably be disallowed (especially `'''`). This changes
all escapable sequences to being *required* to be escaped.

Closes #7945

I wanted to write the tests with more exact spans, but I think #9308 will be fixing that?
auto merge of #9470 : luqmana/rust/bba, r=brson

 #8431

~~@brson: do we need to bump up the cratemap version for this change?~~ Tis a no.
auto merge of #9478 : brson/rust/authors, r=alexcrichton
auto merge of #9480 : brson/rust/noexit, r=thestinger

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.
Fix run-pass tests to have 'pub fn main'

This is required by the check-fast target because each test is slurped up into a
submodule.
auto merge of #9432 : alexcrichton/rust/correct-item-visibility, r=pcwalton

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
option: rewrite the API to use composition