Re-do the 30 minute intro

This was originally on my blog, so it's incredibly informal. Let's make
it better.
Correctly generate drop glue for `Box<str>`

This fixes an ICE.  Closes issue #17734
Changed `extern crate foo as bar;` error message

Closes #17709
docs: Fix short hash link to github

The escaped newline in the middle of the variable reference breaks the
short hash substitution, leaving the link text exmpty; rewrap so that
each replacement is on its own line.
Rename vector patterns to array patterns

Closes #17765.
Tweak ‘discriminant value already exists’ error message

Closes #15524.
Give a more descriptive error when marking non-test items as #[test]

Closes #14772.
Track kind of closure in upvar categorization

Keep track of the kind of closure responsible for an upvar
Categorize upvars in `Fn` unboxed closures as freely aliasable

This causes borrowck to correctly reject mutation or mutable borrows
of upvars in `Fn` unboxed closures since the closure environment is
aliasable.

This also tracks the responsible closure in the aliasability
information returned and uses it to give a helpful diagnostic.

Closes issue #17780
Fix unit test that was illegally mutating an upvar
Add regression test for issue #17780
auto merge of #17777 : lambda/rust/fix-docs-short-hash, r=alexcrichton

The escaped newline in the middle of the variable reference breaks the
short hash substitution, leaving the link text exmpty; rewrap so that
each replacement is on its own line.
auto merge of #17785 : P1start/rust/diagnostics, r=alexcrichton

Closes #17765.
Closes #15524.
Closes #14772.
Fix target-feature codegen option syntax in rustc man page.

The man page stated that the list of features was space-separated when
it's actually comma-separated.
String::truncate doc: also fails if not a char boundary
Fix cfg syntax warnings in libnative
auto merge of #17799 : ebfe/rust/cfg_warn, r=alexcrichton

Probably fallen through the cracks in #17630.
Add regression test for issue #17734
adding iterator benches to tree-based maps for comparison purposes
auto merge of #17762 : bkoropoff/rust/issue-17734, r=alexcrichton

Closes issue #17734

r? @nick29581