relicense shootout-regex-dna.rs

Part of #14248

The authors are @pcwalton and @BurntSushi, and we have their agreement.
Add visit_attribute to Visitor, use it for unused_attribute

The lint was missing a *lot* of cases previously.
Remove the attribute_usage lint

It has been superseded by the unused_attribute lint.

[breaking change]
Improve error message for range in match

Range allows char and numeric types, but previous error message
mentioned only numeric types.
Add back hint for crate level attributes
Remove unused name_str_pair method
auto merge of #14743 : Sawyer47/rust/range-msg, r=huonw

Range allows char and numeric types, but previous error message
mentioned only numeric types.
std::io: expand the oneshot/periodic docs.

Examples!

Fixes #14714.
auto merge of #14728 : TeXitoi/rust/relicense-shootout-regex-dna, r=brson

Part of #14248

The authors are @pcwalton and @BurntSushi, and we have their agreement.

@brson OK?
auto merge of #14741 : sfackler/rust/visit-attr, r=alexcrichton

The lint was missing a *lot* of cases previously.
auto merge of #14745 : huonw/rust/timer-doc, r=alexcrichton

std::io: expand the oneshot/periodic docs.

Examples!

Fixes #14714.
Implement Hash for Bitv and BitvSet

Closes #14744
auto merge of #14749 : sfackler/rust/bitv-hash, r=alexcrichton

Closes #14744
Fix spelling errors in comments.
auto merge of #14751 : jbcrail/rust/fix-comments, r=alexcrichton
relicense shootout-fannkuch-redux.rs

Part of #14248

Main contributors are @pcwalton, @alexcrichton and me.  Only
@dguenther appear in git blame as a minor contribution, but it is
only adding the rust license, so removed by this relicensing.
auto merge of #14756 : TeXitoi/rust/relicense-shootout-fannkuch-redux, r=brson

Part of #14248

Main contributors are @pcwalton, @alexcrichton and me.  Only
@dguenther appear in git blame as a minor contribution, but it is
only adding the rust license, so removed by this relicensing.

@brson OK?
sync: Move underneath libstd

This commit is the final step in the libstd facade, #13851. The purpose of this
commit is to move libsync underneath the standard library, behind the facade.
This will allow core primitives like channels, queues, and atomics to all live
in the same location.

There were a few notable changes and a few breaking changes as part of this
movement:

* The `Vec` and `String` types are reexported at the top level of libcollections
* The `unreachable!()` macro was copied to libcore
* The `std::rt::thread` module was moved to librustrt, but it is still
  reexported at the same location.
* The `std::comm` module was moved to libsync
* The `sync::comm` module was moved under `sync::comm`, and renamed to `duplex`.
  It is now a private module with types/functions being reexported under
  `sync::comm`. This is a breaking change for any existing users of duplex
  streams.
* All concurrent queues/deques were moved directly under libsync. They are also
  all marked with #![experimental] for now if they are public.
* The `task_pool` and `future` modules no longer live in libsync, but rather
  live under `std::sync`. They will forever live at this location, but they may
  move to libsync if the `std::task` module moves as well.

[breaking-change]