new API, finally!

- introduced new error recovery semantics which closely matches
  with the WHATWG Encoding standard.
- raw incremental interface (which will become a low-level API once
  the high-level incremental interface lands) has seen API changes.
- testing codes have been simplified.
- WHATWG interface has temporarily disabled, will be replaced with
  a saner interface soon.