Debuginfo revamp
Disable struct value printing in debug info tests

This is due to the way different versions of gdb print out structs: older versions have them always spread out with fields on different lines, while newer versions will compactly print them on one line. This makes it hard for the output checker to verify the expected output.
Re-enable struct value printing in debug info tests with gdb pretty printing off
More descriptive error messages for debug info tests
regression patch libuv submodule
rustc: One Less Bad Copy
Increase tidy column limit to 100
Disable debuginfo tests on mac since gdb requires root
auto merge of #5319 : brson/rust/debuginfo, r=brson

Continuing #5140 

For the sake of getting this merged I've disabled debuginfo tests on mac (where running gdb needs root). Please feel free to follow up with further improvements.
auto merge of #5337 : yichoi/rust/pull-0312, r=sanxiyn

libuv submodule regression patch for ARM android compilation
auto merge of #5339 : catamorphism/rust/less-copy, r=catamorphism
Revamp foreign code not to consider the Rust modes.  This requires
adjusting a few foreign functions that were declared with by-ref
mode.  This also allows us to remove by-val mode in the near future.

With copy mode, though, we have to be careful because Rust will implicitly pass
somethings by pointer but this may not be the C ABI rules.  For example, rust
will pass a struct Foo as a Foo*.  So I added some code into the adapters to
fix this (though the C ABI rules may put the pointer back, oh well).

This patch also includes a lint mode for the use of by-ref mode
in foreign functions as the semantics of this have changed.
Remove `++` mode from the compiler (it is parsed as `+` mode)
and obsolete `-` mode altogether (it *was* parsed as `+` mode).
auto merge of #5307 : nikomatsakis/rust/remove-by-val, r=nikomatsakis

This is done in two steps:

First, we make foreign functions not consider modes at all.  This is because previously ++ mode was the only way to pass structs to foreign functions and so forth.  We also add a lint mode warning if you use `&&` mode in a foreign function, since the semantics of that change (it used to pass a pointer to the C function, now it doesn't).

Then, we remove by value and make it equivalent to `+` mode.  At the same time, we stop parsing `-` mode and convert all uses of it to `+` mode (it was already being parsed to `+` mode anyhow).

This obsoletes pull request #5298.

r? @brson
auto merge of #5340 : brson/rust/column, r=brson

#5274
Remove unused variable
Remove unused import in core
Remove unused imports in std
Remove unused import in librustc
auto merge of #5336 : ILyoan/rust/remove_unused, r=sanxiyn

Remove unused imports to get rid of warnings.