API tweak.
Changed utf8 API to use uint8_t instead of char. Changed semantics of
read_utf8_backward so that you pass in values one past, the same values
you would use for reading forward. Made the UTF8Decoder iterator
bidirectional. Added and updated test cases accordingly.