(cleanup) Uncomment an assertion that now holds.
Lazily initialize 'leaf node' taskgroups for unlinked spawns, for an apparent 11% speedup.
Re-enable rusti tests
auto merge of #8317 : bblum/rust/fast-spawn-unlinked, r=brson

This lazily initializes the taskgroup structs for ```spawn_unlinked``` tasks. If such a task never spawns another task linked to it (or a descendant of it), its taskgroup is simply never initialized at all. Also if an unlinked task spawns another unlinked task, neither of them will need to initialize their taskgroups. This works for the main task too.

I benchmarked this with the following test case and observed a ~~21% speedup (average over 4 runs: 7.85 sec -> 6.20 sec, 2.5 GHz)~~ 11% speedup, see comment below.
```
use std::task;
use std::cell::Cell;
use std::rt::comm;

static NUM: uint = 1024*256;

fn run(f: ~fn()) {
    let mut t = task::task();
    t.unlinked();
    t.spawn(f);
}

fn main() {
    do NUM.times {
        let (p,c) = comm::oneshot();
        let c = Cell::new(c);
        do run { c.take().send(()); }
        p.recv();
    }
}
```
auto merge of #8321 : alexcrichton/rust/enable-rusti, r=cmr

Now that LLVM has been upgraded, I think that we can try again to re-enable the rusti tests.
Add to_ascii_upper, to_ascii_lower and eq_ignore_ascii_case in std::ascii
auto merge of #8231 : SimonSapin/rust/ascii-upper-lower-case, r=cmr

Original pull request: Add str.to_ascii_lower() and str.to_ascii_upper() methods in std::str.