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 #12059 : thestinger/rust/glue, r=pcwalton

A follow-up from the work I started with 383e3fd13b99827b5dbb107da7433bd0a70dea80.
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)]`
auto merge of #12099 : alexcrichton/rust/rpath-tests, r=thestinger

This way when you disable rpaths you can still run `make check`
Remove redundant Ord implementation for Version.

I've forgot why we keep them, so let me know if you know their reason
for existing.

Signed-off-by: OGINO Masanori <masanori.ogino@gmail.com>
Fix unused import warnings.

Signed-off-by: OGINO Masanori <masanori.ogino@gmail.com>
Remove an unused variable in a test of std::c_str.

Signed-off-by: OGINO Masanori <masanori.ogino@gmail.com>
Remove unnecessary parentheses.

Signed-off-by: OGINO Masanori <masanori.ogino@gmail.com>
Tweak from_utf8_lossy to return a new MaybeOwned enum

MaybeOwned allows from_utf8_lossy to avoid allocation if there are no
invalid bytes in the input.
Implement BytesContainer for MaybeOwned
Delete send_str, rewrite clients on top of MaybeOwned<'static>

Declare a `type SendStr = MaybeOwned<'static>` to ease readibility of
types that needed the old SendStr behavior.

Implement all the traits for MaybeOwned that SendStr used to implement.
Rewrite path::Display to reduce unnecessary allocation
auto merge of #12086 : huonw/rust/safe-json, r=kballard

The lexer and json were using `transmute(-1): char` as a sentinel value for EOF, which is invalid since `char` is strictly a unicode codepoint.

Fixing this allows for range asserts on chars since they always lie between 0 and 0x10FFFF.
doc: Modernize FAQs just slightly
auto merge of #12096 : brson/rust/morestack-addr, r=thestinger