Fix various longstanding bugs in StringToScreenChars. Get rid of “lastInitializedChar” because it always moved in lockstop with j. Fix a bug where buf[i].complexChar was initialized, with a comment incorrectly claiming that some harm would be caused by j repeating in consecutive iterations. While it does repeat in the case of zero-width joiners, there is no harm from reinitializing the complexChar field since buf[j] is fair game at the top of the for loop. Fix various out of date or nonsensical comments and clarify others.