Introduce CharacterIterator
Allow to change reference in CharacterIterator
Huge refactoring: use character iterators everywhere.