Changed how CCharacterReader and CTokenizer work. Now they take an iterable of lines instead of a buffer. This allows the CCharacterReade to elide single-line comments and macro lines.