Continue attempt 2
+ Moved CharacterBuffer, Index, Range outside of CharacterReader
+ CharacterBuffer is hidden from public
+ Index is half public and half private. public is read-only. private is write-able from one method changePosBy(offset)
+ Range is fully final public.