rustc: middle: lint: use more doc comments
rustc: middle: ty: use doc comments for the tcx
rustc: add a lint for large enum variants

It can be easy to accidentally bloat the size of an enum by making one variant
larger than the others. When this happens, it usually goes unnoticed. This
commit adds a lint that can warn when the largest variant in an enum is more
than 3 times larger than the second-largest variant. This requires a little
bit of rejiggering, because size information is only available in trans, but
lint levels are only available in the lint context.

It is allow by default because it's pretty noisy, and isn't really *that*
undesirable.

Closes #10362
rustc: abstract lint level exporting from EnumSizeVariance
libstd: Remove unnecessary re-exports under std::std
De-realstd os::args

With the test runner using ::std::os::args(), and std::std::os now being
a re-export of realstd::os, there's no more need for realstd stuff
mucking up rt::args.

Remove the one test of os::args(), as it's not very useful and it won't
work anymore now that rt::args doesn't use realstd.
Fix to tutorial
auto merge of #14430 : kballard/rust/squelch_os_warning, r=alexcrichton

Clean up the re-exports of various modules in `std::std`, and remove the
`realstd` stuff from `std::rt::args`.
Minor fixes to `std::str` docs

This tweaks the `std::str` docs to compensate for the recent shift from `~str`
to `String`.
Update tutorial, see issue #13578
Allow $foo:block nonterminals in expression position

Fixes #13678.
auto merge of #14432 : kballard/rust/nt_block, r=huonw

Fixes #13678.
mark non-immediate by-value parameters as non-null
auto merge of #14300 : cmr/rust/enum-size-lint, r=kballard

See commits for details.
handle attributes for non-immediate types first

Slices are non-immediate and were not having these attributes applied.
auto merge of #14439 : thestinger/rust/nonnull, r=luqmana
syntax: Add a source field to `Local` for tracking if it comes from `let`s or `for`s.
auto merge of #14374 : swgillespie/rust/swgillespie-tutorial, r=alexcrichton

The current tutorial says that the only way to get master is to build from source, which isn't true anymore - nightly binaries and an installer for Mac OS X are now available at the install page: http://www.rust-lang.org/install.html . Feedback very much welcome! Addresses issue #13578.
Improve docs for core::tuple
auto merge of #14440 : Sawyer47/rust/tuple-doc, r=alexcrichton