register snapshots
fix build with the new snapshot compiler
auto merge of #8450 : alexcrichton/rust/nopt-changes, r=graydon

Since the new runtime landed, the *-nopt builders have increased cycle time by roughly an hour. I have a feeling that this is because the entire runtime is in rust and it's not being optimized at all. In that past with an optimized C++ runtime it looks like things ran faster.

This adds the ability to disable optimizations in tests only, not for the entire compiler. This means that the entire compiler and associated libraries will be built with optimizations, but the tests themselves would be built and run without optimizations.

This isn't quite as good of a guarantee as disabling optimizations everywhere, but hopefully it'll improve cycle time for the *-nopt builds to move the queue along faster.
auto merge of #8476 : thestinger/rust/snapshot, r=brson
Implement formatting arguments for strings and integers

Closes #1651
Define integer formats for all widths

Closes #1653
Correct the padding on integer types for formatting
Explain what ifmt! is all about
Add `f` formats to `ifmt!`

Currently the work just the same as the old `extfmt` versions