use unicode character categories to classify identifier characters

fixes #6797, fixes #5936
allow categories So and Me in identifiers