Add support for NFC and NFKC

This adds a new `Recompositions` iterator, which performs canonical composition on the result of the `Decompositions` iterator (which is canonical or compatibility decomposition). In effect this implements Unicode normalization forms C and KC.
Depending on how large this is expected to get, it may be better to use a `RingBuf` to avoid `O(n)` shifts.