merging interface CharInputReader and abstract class AbstractCharInputReader.
applying performance improvements after micro benchmarking