Fix typo "gihub" in libsyntax/crateid.

Update licensing header for 2014.
librustc: Try to resolve before coercions.
auto merge of #14627 : Indiv0/rust/fix-crateid-doc-typo, r=alexcrichton

Example URL in CrateId documentation is:

    `gihub.com/mozilla/rust`

Instead of:

    `github.com/mozilla/rust`

Also update libsyntax/crateid.rs licensing header for 2014.
librustc: remove check::FnKind enum since we only ever use one variant.
auto merge of #14632 : luqmana/rust/cu, r=huonw

The distinction doesn't make sense any more since we don't have do blocks anymore.
auto merge of #14628 : luqmana/rust/fcr, r=nikomatsakis

#14589.
Fixes #13843.

An empty regex is a valid regex that always matches. This behavior
is consistent with at least Go and Python.

A couple regression tests are included.
Some minor documentation touchups for libregex. Fixes #13800.
auto merge of #14634 : BurntSushi/rust/fix-13843, r=alexcrichton

An empty regex is a valid regex that always matches. This behavior
is consistent with at least Go and Python.

A couple regression tests are included.

I'd just assume that an empty regex is an invalid regex and that an error should be returned (I can't think of any reason to use an empty regex?), but it's probably better to be consistent with other regex libraries.
auto merge of #14635 : BurntSushi/rust/regex-doco-touchups, r=alexcrichton
rustc: Update how Gc<T> is recognized

This commit uses the same trick as ~/Box to map Gc<T> to @T internally inside
the compiler. This moves a number of implementations of traits to the `gc`
module in the standard library.

This removes functions such as `Gc::new`, `Gc::borrow`, and `Gc::ptr_eq` in
favor of the more modern equivalents, `box(GC)`, `Deref`, and pointer equality.

The Gc pointer itself should be much more useful now, and subsequent commits
will move the compiler away from @T towards Gc<T>

[breaking-change]
syntax: Move the AST from @T to Gc<T>
rustc: Move the AST from @T to Gc<T>