Refactor core::run to remove the ProgRepr struct, which was
a legacy from the time when destructors were implemented
using resource types.
auto merge of #6029 : Kimundi/rust/ascii-encoding, r=thestinger

Replaced {str, char, u8}::is_ascii
Replaced str::to_lower and str::to_upper
auto merge of #6044 : Dretch/rust/run-remove-progrepr, r=graydon

...which was a legacy from the time when destructors were implemented using resource types.
add a Counter iterator
Remove needless FIXME. Fixes #2811.
auto merge of #6052 : nikomatsakis/rust/remove-2811, r=catamorphism

r? whomever.
auto merge of #6051 : thestinger/rust/iterator, r=catamorphism,pcwalton
Made fail! and assert! accept both &'static str and ~str, as well as a fmt! like format list.

Unwinding through macros now happens as a call to the trait function `FailWithCause::fail_with()`, which consumes self, allowing to use a more generic failure object in the future.