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)
vec: add an external iterator
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
auto merge of #5923 : thestinger/rust/iterator, r=graydon
sketch: Make rust sketch barf output prettier
libcore: add an EnumerateIterator, like Python's `enumerate`.