Add `extra::getopts::short_usage`

This complements `usage` by auto-generating a short one-liner summary
of the options.
Feature gate all quasi-quoting macros.
Replaced with a single "quote" feature gate.
Don't copy arguments passed by value with indirection to allocas.
Check for trait impl conflicts across crates
Improved pattern-match code and explanation.

This cleans up a warning about an unused variable and explains the code
further.
Adding tests for closed issues

Closes #5521
Closes #9396
Closes #10714
Make cfail test error messages more precise

Closes #3192
Run all target crate tests on the windows/try bots

Previously, the check-fast and check-lite test suites weren't picking up all
target crates, rather just std/extra. In order to ensure that all of our crates
work on windows, I've modified these rules to build the test suites for all
TARGET_CRATES members. Note that this still excludes rustc/syntax/rustdoc.
auto merge of #12014 : eddyb/rust/less-copies, r=cmr
auto merge of #12018 : alexcrichton/rust/triage, r=sfackler

Mostly just test suite modifications.
auto merge of #12023 : nick29581/rust/err_res, r=alexcrichton

closes #3512
stop calling `exchange_free` on 0-size types

A solid step towards fixing #11998. Eventually, the size may always be
passed to `exchange_free` but this will not be required to fix the bug.
auto merge of #12025 : lilac/rust/feature-gate-quote, r=brson

Closes #11630.
auto merge of #12035 : chromatic/rust/tutorial_improvements, r=alexcrichton

This cleans up a warning about an unused variable and explains the code
further.
auto merge of #12045 : thestinger/rust/glue, r=pcwalton

A solid step towards fixing #11998. Eventually, the size may always be
passed to `exchange_free` but this will not be required to fix the bug.
move concurrent stuff from libextra to libsync
auto merge of #11939 : JeremyLetang/rust/move-libsync, r=alexcrichton

This time everything should be okay, No break due to a failed merge or rebase...

Sorry for the abuse of pull request.

So this move extra::sync, extra::arc, extra::future, extra::comm and extra::task_pool to libsync.
Avoid cloning ast::CrateConfig
pull extra::{serialize, ebml} into a separate libserialize crate

- `extra::json` didn't make the cut, because of `extra::json` required
   dep on `extra::TreeMap`. If/when `extra::TreeMap` moves out of `extra`,
   then `extra::json` could move into `serialize`
- `libextra`, `libsyntax` and `librustc` depend on the newly created
  `libserialize`
- The extensions to various `extra` types like `DList`, `RingBuf`, `TreeMap`
  and `TreeSet` for `Encodable`/`Decodable` were moved into the respective
  modules in `extra`
- There is some trickery, evident in `src/libextra/lib.rs` where a stub
  of `extra::serialize` is set up (in `src/libextra/serialize.rs`) for
  use in the stage0 build, where the snapshot rustc is still making
  deriving for `Encodable` and `Decodable` point at extra. Big props to
  @huonw for help working out the re-export solution for this

extra: inline extra::serialize stub

fix stuff clobbered in rebase + don't reexport serialize::serialize

no more globs in libserialize

syntax: fix import of libserialize traits

librustc: fix bad imports in encoder/decoder

add serialize dep to librustdoc

fix failing run-pass tests w/ serialize dep

adjust uuid dep

more rebase de-clobbering for libserialize

fixing tests, pushing libextra dep into cfg(test)

fix doc code in extra::json

adjust index.md links to serialize and uuid library