rt: don't save and restore xmm/regs in __morestack.
Add debug info for boxes
Add debug info for vectors
Add debug info for bare_fn type
Prevent debug info generation of zero-span nodes

If a node has a (0, 0) span, it was not in the source, so debug symbols should not be generated for it.
Add debug info test for boxes
Add debug info test for vectors
rustpkg: Fail when crate inference fails; inject link attributes

1. Fail when there's no package script and no crates named
main.rs, lib.rs, bench.rs, or test.rs.

2. Inject the crate link_meta "name" and "vers" attributes, so
that the output file gets named correctly in the library case.

3. Normalize '-' to '_' in package names.
rustpkg: Add a few tests

There's no test runner for rustpkg yet; just sketching out a few
basic test scenarios. pass/ contains packages that should compile
successfully, whereas fail/ contains packages that should fail
to build.
rustpkg: Implement clean; replace boolean result flags with fail!()

1. Implemented the `clean` command

2. The methods implementing rustpkg commands all returned `bool`.
Since most of not all of the error situations seem unrecoverable,
I changed the methods to return unit (and also stubbed out several
more methods that were assuming a package script existed, to be
re-implemented in the future)
rustpkg: Remove bogus .rc file
rustpkg: Change this example to show how to do a custom build
rustpkg: Don't execute the standard build logic if there is a pkg.rs
rustpkg: Add a list of rustpkg commands that should pass

This is a test file containing examples of commands that should
succeed. When we write the test runner, we will have to figure
out how to automate them.
rustpkg: Add more tests

These are examples of what *should* work, and probably don't
work yet.
Errors with the same span print the span once
Implement bitwise operator traits for ints and uints
Add #[inline(always)] to each operator method
core: io: the read_until function checks bytes not chars, so type should reflect that.
auto merge of #5933 : huonw/rust/core-read-until-byte, r=thestinger

`read_until` is just doing a bytewise comparison. This means the following program prints `xyå12`, not `xy`, which it should if it was actually checking chars.

```rust
fn main() {
    do io::with_str_reader("xyå12") |r| {
        io::println(r.read_until('å', false));
    }
}
```

This patch makes the type of read_until match what it is actually doing.