Pass a more proper span to the syntax expanders

Closes #5794
std::rt: Add a standalone sleep function.
auto merge of #9183 : alexcrichton/rust/issue-5794, r=catamorphism

Closes #5794
auto merge of #9191 : huonw/rust/are-you-tired, r=cmr

Allows `std::rt::io::timer::sleep(1000)` rather than `std::rt::io::timer::Timer::new().unwrap().sleep(1000)`.
Implement recv_timeout for std::comm *Port implementations
Rebased to master