Add initial support for a new formatting syntax

The new macro is available under the name ifmt! (only an intermediate name)
auto merge of #8245 : alexcrichton/rust/fmt2, r=graydon

This is a reopening of #8182, although this removes any abuse of the compiler internals. Now it's just a pure syntax extension (hard coded what the attribute names are).
Enabled workstealing in the scheduler. Previously we had one global work queue shared by each scheduler. Now there is a separate work queue for each scheduler, and work is "stolen" from other queues when it is exhausted locally.