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