rt: Inline get_sp_limit/set_sp_limit/get_sp for x86_64.
rt: Inline get_sp_limit/set_sp_limit/get_sp for x86.
core: Cleanup rt::context
Give core::rt and std::net their own uvll bindings

I intend to do some big refactoring and don't want to deal w/ std just now
core: Don't use printf in rtdebug!

The bots were showing a segfault that I can't reproduce. Assuming it's
varargs related so let's not use printf
core: Simplify uvll bindings and strip out currently-unused bits

No more mapping uv structs to Rust structs
core: Convert some multiline statements to single-line
core: Rename rt::io to rt::rtio

This is an internal interface. I want to use rt::io for public interfaces.
mk: If NO_REBUILD is set then don't rebuild core/std before testing

Can make turnaround of testing changes to core/std/syntax much faster.
core: Add rt::io and start sketching the API
core: Begin uv file system bindings
core: Refactor uv bindings

I can already see these are going to get massive. Putting them into multiple
files.
Add a way to run the test suite with the new scheduler

TESTARGS=--newrt make check-stage1-rpass

Conflicts:
	src/rt/rustrt.def.in
core: Initialize global state lazily in the Scheduler ctor

I don't want any global one-time initalization functions because
that will make embedding harder.
auto merge of #5424 : luqmana/rust/inline-rt, r=brson

As per #2521. Inlining seems to improve performance slightly:

                 Inlined          Not Inlined
    x86:         13.5482            14.4112
    x86_64:      17.4712            18.0696

(Average of 5 runs timed with `time`)

```Rust

fn foo() -> int {
    int::from_str(~"28098").unwrap()
}

fn main() {
    for 1000000.times {
        foo();
        foo();
        foo();
        foo();
        foo();
    }
}
```

All run on:

    Linux 3.2.0-0.bpo.4-amd64 #1 SMP Debian 3.2.35-2~bpo60+1 x86_64 GNU/Linux

The MIPS and ARM bits I didn't inline since I'm not as familiar with them and I also can't test them. All green on try.
Merge remote-tracking branch 'brson/rt'

Conflicts:
	src/libcore/rt/context.rs
	src/libcore/rt/sched.rs
	src/libcore/rt/thread.rs
	src/libcore/rt/uv.rs
auto merge of #5409 : brson/rust/rt, r=brson

r?

There are a lot of commits here, but not all that much substance. Mostly just refactoring.

I started sketching out the beginnings of a very simple I/O API in `core::rt::io` that represents I/O streams as a single `Stream` trait instead of `Reader` / `Writer` pairs. This seems to be the more common pattern (at least this is how the .NET BCL does it) and it seems to me that separate readers and writers would make duplex streams very awkward. Regardless, I don't intend to go very far down the I/O API design road without some mailing list discussion.

I've also started on the uv bindings for file I/O but haven't gotten very far.

Also hooked up the new scheduler to `rust_start` and the compiletest driver. 70% of run-pass test cases already pass, but I wouldn't read too much into that.

I also split the direct, low-level uv bindings in two so that the scheduler can have its own set, leaving `std::net` on its own.
testsuite: Add various test cases

Some are xfailed, some not, some existing ones get un-xfailed.