add assert_eq! macro

the assert_eq! macro compares its arguments and fails if they're not
equal. It's more informative than fail_unless!, because it explicitly
writes the given and expected arguments on failure.
change some uses of fail_unless to assert_eq
renamed str::view -> slice_DBG_BRWD
renamed str::slice -> slice_DBG_UNIQ
changed vec slice method -> to_owned()
renamed vec view method  -> slice_V_DBG_BRWD
Make typechecker compositional

The typechecker previously passed around a boolean return flag to
indicate whether it saw something with type _|_ (that is, something
it knows at compile-time will definitely diverge) and also had some
manual checks for the `ty_err` pseudo-type that represents a previous
type error. This was because the typing rules implemented by the
typechecker didn't properly propagate _|_ and ty_err. I fixed it.

This also required changing expected error messages in a few tests,
as now we're printing out fewer derived errors -- in fact, at this
point we should print out no derived errors, so report any that
you see (ones that include "[type error]") as bugs.
rt: Increase C_STACK_SIZE to 2MB to get JIT/rusti working again (dlopen segfaults)
librustc: Fix path-qualified and cross-crate constants in match patterns.
Test for cross-crate const in match pattern.
Move the function to time passes to util
Time type checking passes separately
removed str::slice_DBG_UNIQ
Switch CoherenceInfo from oldmap
back-renamed slice_DBG_BRWD, slice_V_DBG_BRWD -> slice, slice_DBG_UNIQ -> slice_unique
Switch impls_seen from oldmap
auto merge of #5470 : sanxiyn/rust/remove-oldmap-2, r=sanxiyn

Referencing #4986.
auto merge of #5466 : Kimundi/rust/view-slice-rename, r=bstrie

A slice now always refers to something that returns an borrowed pointer, views don't exist anymore. If you want to have an explictit copy of a slice, use `to_owned()`
libcore: Remove a few possibly-cyclic imports in an effort to unbreak the tree on Linux
auto merge of #5464 : luqmana/rust/const-pat, r=pcwalton

r? @pcwalton
librustc: Forbid access to cross-crate private static methods
auto merge of #5457 : pcwalton/rust/xcpsm, r=pcwalton

r? @catamorphism
rustc: Comments only - explain the invariant about ty_err and ty_bot a little