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)].
auto merge of #12066 : huonw/rust/show2, r=alexcrichton

- Convert the formatting traits to `&self` rather than `_: &Self`
- Rejig `syntax::ext::{format,deriving}` a little in preparation
- Implement `#[deriving(Show)]`