Use static string with fail!() and remove fail!(fmt!())

fail!() used to require owned strings but can handle static strings
now. Also, it can pass its arguments to fmt!() on its own, no need for
the caller to call fmt!() itself.
Fix cosmetics for fail!() calls
auto merge of #6357 : dotdash/rust/fixfmt, r=bstrie

fail!() used to require owned strings but can handle static strings
now. Also, it can pass its arguments to fmt!() on its own, no need for
the caller to call fmt!() itself.
rustpkg: Remove #[allow(vecs_implicitly_copyable)]
compiletest: Remove #[allow(vecs_implicitly_copyable)]
syntax: Remove #[allow(vecs_implicitly_copyable)]
rusti: Remove #[allow(vecs_implicitly_copyable)]
Remove vecs_implicitly_copyable from the compiler
Fix test fallout from removing vecs_implicitly_copyable
auto merge of #6434 : alexcrichton/rust/less-implicit-vecs, r=bstrie

This closes #5204 and #6421.

This also removes the `vecs_implicitly_copyable` lint (although now reading #6421, this may not be desired?). If we want to leave it in, it at least removes it from the compiler.
Get unit tests for rusti working

* They didn't work before, because the location of the tests caused the
  'sysroot' option to crate lookup to be wrong for finding the correct stage's
  core/std libraries. This moves the compiled tests from the $host/test
  directory into a $host/$stage/test directory. This means that the sysroot will
  be correct and the core/std libraries can actually be found
* The LLVM bindings apparently aren't threadsafe, so we can't run multiple tests
  in parallel.
Fix `use` statements with rusti
Add regression tests for various other rusti issues
Don't emit common warnings in rusti
Fix rustpkg tests now that they're in a different location
auto merge of #6467 : alexcrichton/rust/better-rusti, r=bstrie

These few commits address a few existing issues:

* #5469 - adding regression tests for `rusti`. This adds unit tests to the `rusti.rc` file (which needed some reorganization of the Makefile, see the first commit message). These are super-simple right now, and sadly can't test the output of the tests. I worked for a bit on making a compiletest version of the rusti tests, but I ended up hitting something which blocked me, although I've forgotten it by this point.
* #5937 - regression test added, and it's fixed
* #5803 - just doesn't appear to happen any more
* #5784 - it's no longer broken, and it no longer spits out warnings about unused variables.

I also did some investigation into #5774, and you may want to read the comment I left on the bug. The gist of the situation is that C++ exceptions across JIT code don't look like they're working, even though they [should be working](https://github.com/mozilla/rust/blob/3aa1122ec25d15a2a73a295f8298ad9c38b09a10/src/rustllvm/RustWrapper.cpp#L387). If anyone has any insight on this, that would be awesome!
Ignore two failing flatpipes tests
auto merge of #6479 : brson/rust/flatpipes, r=brson