Most OS APIs want a cluster when they ask for a "character", except ATK. Rather than altering BOUNDARY_CHAR, I added a new BOUNDARY_CLUSTER. Aside from being less risky and causing less churn, there are cases internally where we want to move a TextLeafPoint by character; e.g. to explicitly move to the next/previous Accessible or to move to the next/previous character in an abstract way without worrying about Accessible boundaries. Calculating clusters is more expensive, so it doesn't make sense to move by cluster in those cases. Differential Revision: https://phabricator.services.mozilla.com/D212517