Don't allocate a string when calling println

Instead use format_args! to pass around a struct to pass along into std::fmt
auto merge of #9979 : alexcrichton/rust/print-no-alloc, r=huonw

Instead use format_args! to pass around a struct to pass along into std::fmt