std::fmt: convert the formatting traits to a proper self.

Poly and String have polymorphic `impl`s and so require different method
names.
syntax: remove some dead code.
syntax: convert deriving to take &mut ExtCtxt.
syntax: split out the parsing and the formatting part of format_args!().
Implement `#[deriving(Show)]`.
Update docs and tests for #[deriving(Show)].