language changes (oops, rust-ci is broken?): ~str -> StrBuf, BenchHarness -> Bencher.
Replace glob reexport
added missing reexports; removed a remaining ByteWriter impl for ~[u8].
language changes: &[...] now always has &[T] type.
language changes: ~"str" is gone.
language changes: ~T -> Box<T>, ~expr -> box expr.
initial decoder refactoring.

this should make the whole decoder business easy to maintainable.
currently this change is available to Korean and Japanese codecs.
fixed a stupid bug on Shift_JIS EUDC decoder.
additional refactoring work for Chinese encodings.

this also keeps up with the recent WHATWG spec changes, including
a merge of GBK18030 with GB18030.
bumped the copyright year for substantially changed files.
reencoding trap now depends on the *current* encoder state.

previously it didn't depend on the encoder state at all, resulting in
the incorrect output when the encoder has a complex state.
this directly affects ISO 2022 encodings in the development.
language changes: std::cast is merged to std::mem.
generalized the stateful decoder DSL to support non-ASCII-compatible decoders.
more DSL support for generalized stateful decoders.
further DSL tweak.

- the last codec error is now stored in the intermediate context,
  so the state machine can use a code like `ctx.err(..), S1(ctx)`.
- fixed a performance regression due to the decoder generalization.
  the decoder performance should be on par with hand-written one
  (less than 10% difference) with `--opt-level=3 -Z lto` rustc flags.
generic context methods are no longer necessary; eliminated them.
added ISO-2022-JP support.
added HZ encoding. this completes support for all WHATWG encodings.
fixed Shift_JIS encoder not to return unexpected EUDC codes.
added more benchmarks to CJK encodings and UTF-8.