Include ChaCha pseudorandom generator
test: Don't depend on /bin/bash

Our FreeBSD bots apparently don't have bash installed, and it's ok to run with
sh anyway!

Unblocks a snapshot
syntax: Enable parsing of `const` globals

This rewrites them to the current `ItemStatic` production of the compiler, but I
want to get this into a snapshot. It will be illegal to use a `static` in a
pattern of a `match` statement, so all those current uses will need to be
rewritten to `const` once it's implemented. This requires that the stage0
snapshot is able to parse `const`.

cc #17718
Fix missing entries in upvar borrows map for capture-by-ref unboxed closures

This prevents a later ICE in borrowck.

Closes issue #17655
Fix categorization of upvars of capture-by-reference unboxed closures

In particular, this causes mutation of an upvar to correctly mark
it as mutable during adjustment.  This makes borrowck correctly
flag conflicting borrows, etc.

We still seem to generate incorrect code in trans which copies the upvar
by value into the closure.  This remains to be fixed.
Return correct types for capture-by-ref unboxed closure upvars

Treat upvars of capture-by-reference unboxed closures as references
with appropriate regions and mutability.
Correctly trans capture-by-ref unboxed closures

Store references to the freevars instead of copies when constructing
the environment and insert an additional load when reading them from
the environment.
Rehabilitate an unboxed closure test

This test works as a regression test for issue #17655.  It also
exercises mutation of by-ref upvars.
Set the `non_uppercase_statics` lint to warn by default
Update the `unused` lint group to include more lints
Improve the `non_snake_case` lint to give better suggestions
Correct error message for invalid `ref`/`mut` bindings

Closes #15914.
Report trait/impl sig inconsistency before method/body inconsistency

Closes #15657.
Change rustc pretty-printing to print [T, ..n] instead of [T, .. n]
Move the lint for the stability lints to the method name only

Closes #17337.
Add some more test coverage of by-ref unboxed closures
tests: remove old compile-fail test asserting the removal of `const`.
Fix a race condition between remove_from_env and other io::process tests.
travis: Fix for real this time

I ended up botching the merge when making the rollup, and the fix was to just
not configure LLVM all via --llvm-root with a nonexistent path.
rollup merge of #17215 : P1start/lints