std: Add Writer trait StringWriter to rt::io

StringWriter implements .write_char(), .write_str(), .write_line().

Is a separate utility trait since it can be separately useful without
the full Writer trait.
std: Use rt::io for memory IO in std::to_bytes
std: Replace fn borrow with .as_slice() in std::to_bytes
std: Add a ToStr benchmark for a HashMap
std: Use rt::io in ToStr

Add a method called .to_str_writer<W: std::rt:io::StringWriter>(w: &mut W)
to ToStr. Allow passing down a string writer, that will make recursive
calls to ToStr more efficient once .to_str_writer() is implemented
widely.

.to_str() and .to_str_writer() call each other in the
default implementation. The implementer must implement at least one of
these methods.
std: Use to_str_writer for int and uint
std: Use rt::io and StringWriter for in-memory I/O in std::repr

Move repr to using rt::io::mem::MemWriter instead of the old io::Writer.
std: Add fixme note for ToStr regarding issue #7771