Split CJK terms at punctuation characters, optimize code
A punctuation character inside a CJK term triggers a BreakOpportunity. This can be used to split the term.
Strip any leading whitespace and punctuation before trying to normalize a term, which is now twice as common as we commit also on StartOfItem. This avoids many temporary QStrings for "empty" terms.