A getline implementation that carries mostly the same assumptions as istream::getline. Requires ParserState::done() to always be checked (for negative) to safely retrieve the next line. Enables tryParseKeywords and friend to only maintain a high level view of the parsing procedure, and not deal with stream positioning.