rustc: Don't allocate a cnum to syntax crates

Syntax-only crates are no longer registered with the cstore, so there's no need
to allocate crate numbers to them. This ends up leaving gaps in the crate
numbering scheme which is not expected in the rest of the compiler.

Closes #13560
Give reduction-type tests in Bitv more natural names
parallelisation of shootout-k-nucleotide
Simplify implementation of Bitv::{all,none} using iter builtins.
syntax: Parses `&&` as `& &` whenever appropriate.

Closes #11227.
Add #[deriving(Hash)] to Result.
Tests for issue 5997 failure and success conditions.

Closes #5997.
Add span to error for missing type params on enums.
Change error for out of scope type params to be more helpful.
Catch forward declarations in default type params at AST conversion.
mk/tests.mk: Fix a typo causing make to give compiletest the wrong rt build dir (target instead of host).
Remove rule that is confusing

The original text stated that one should only return a unique or managed pointer if you were given one in the first place. This makes it sound as if the function *should* return a unique pointer if it were given a unique pointer. The rest of the section goes on to describe why this is bad, and the example of bad code does exactly what the rule just said to do.

I reworded the original rule into a reference to the more concise rule mentioned at the bottom of the section, which helps add emphasis (a la 'it bears repeating').
auto merge of #13565 : alexcrichton/rust/issue-13560, r=brson

Syntax-only crates are no longer registered with the cstore, so there's no need
to allocate crate numbers to them. This ends up leaving gaps in the crate
numbering scheme which is not expected in the rest of the compiler.

Closes #13560
auto merge of #13572 : yuriks/rust/bitv-renames, r=alexcrichton

Renamed the methods in Bitv that test all bits to have names that, ehm, "roll off the tongue" a bit more easily. :)

Also added tests for them while at it, since they seemed to be missing.
auto merge of #13575 : TeXitoi/rust/shootout-knucleotide-parallel, r=alexcrichton
auto merge of #13576 : lifthrasiir/rust/double-ref, r=alexcrichton

Uses the same strategy as `||` and `>>`. Closes #11227.
auto merge of #13525 : Ryman/rust/issue_5997, r=alexcrichton

Closes #5997.
auto merge of #13580 : DiamondLovesYou/rust/std-result-hash, r=alexcrichton

Title says it all.
auto merge of #13581 : DiamondLovesYou/rust/tests-mk-typo, r=alexcrichton

I spotted this while working on https://github.com/mozilla/rust/pull/13450.
auto merge of #13585 : brandonw/rust/patch-1, r=cmr

The original text stated that one should only return a unique or managed pointer if you were given one in the first place. This makes it sound as if the function *should* return a unique pointer if it were given a unique pointer. The rest of the section goes on to describe why this is bad, and the example of bad code does exactly what the rule just said to do.

I reworded the original rule into a reference to the more concise rule mentioned at the bottom of the section, which helps add emphasis (a la 'it bears repeating').