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.
If it's always going to be *super* small, then the extra bookkeeping overhead from a `RingBuf` may make it slower than a `Vec`. Since this one can grow to the size of the input, it's probably best to use a `RingBuf` if for no other reason than to defend against pathological inputs.