Normalizes Japanese horizontal iteration marks (odoriji) to their expanded form.

Sequences of iteration marks are supported. In case an illegal sequence of iteration
marks is encountered, the implementation emits the illegal source character as-is
without considering its script. For example, with input "?ゝ", we get
"??" even though "?" isn't hiragana.

Note that a full stop punctuation character "。" (U+3002) can not be iterated
(see below). Iteration marks themselves can be emitted in case they are illegal,
i.e. if they go back past the beginning of the character stream.

The implementation buffers input until a full stop punctuation character (U+3002)
or EOF is reached in order to not keep a copy of the character stream in memory.
Vertical iteration marks, which are even rarer than horizonal iteration marks in
contemporary Japanese, are unsupported.