Fix SingleByteEncoder for code points above U+FFFF.

Return an error rather than silently skip such code points.
converted `test_non_bmp` to the encoder test.
Take a ref to an existing string/sequence in {De,En}coder.{feed,flush}

... instead of returning a newly allocated one.

Add test_feed and test_flush (behind #[cfg(test)]) to avoid refactoring
the existing tests. They’re implemented as default methods on the
traits,
which are still experimental in Rust 0.7 and need a compiler flag to be
accepted by the lint pass. They’re not experimental anymore in recent
Rust.
Pre-allocate output string/sequences in advance.
Remove unnecessary publicity specifier

ie. "pub" in trait implementation.

This is required in rust 0.8-pre, but still compatible with 0.7.
Make whatwg::get_encoding public.

It is useful by itself when dealing with multiple encoding hints (eg.
HTTP Content-Type and <meta charset>.)
Fix whatwg::get_encoding: ASCII only trimming and case-insensitivity.

Avoid &str.to_ascii() which fails when given a non-ASCII label.
Avoid allocating strings to match against in whatwg::get_encoding.

The added micro-benchmark goes from ~81200ns to ~280ns.
Rename whatwg::get_encoding to whatwg::encoding_from_label

This indicates that string labels, as opposed to just Encoding objects,
are involved.
Make Encoder::preferred_replacement_seq() a default method.
Make Encoding::name() return a static string.
Upgrade to rustc 0.8-pre (0a677bc 2013-08-14 10:35:12 -0700)
Always use Encoding as &'static, avoid allocations
Use Rust 0.8’s implementation of str.to_ascii_lower()
fixed a typo
move to Rust 0.8.
s/feed/raw_feed/g, s/flush/raw_finish/g.
error causes use SendStr, eliminating most allocations.
eliminated EncodingUtil, simplified Trap interfaces.

this commit also makes informative methods to `Encoding` such as `name`
lifetime-independent, in order to avoid a generic type parameter in trap
interfaces. (it seems that `&'static Trait` is impossible to construct
in the current Rust, as it would require a corresponding vtable to be
static as well.) since traps are not intended to create a new `Encoder`
or `Decoder` instance, non-informative methods continue to require
static lifetime so `Encoding` still has to be static.
initial transition to {String,Byte}Writer.