Performs the Canonical Ordering Algorithm as defined by Section 3.11.5 in the Unicode Core Spec.
See Section 3.11.5