Additional String Processing APIs

A function that removes on partial prefixes can be composed from the whole-prefix version along with a divergence-testing method.

extractIf could be done with a divergence-testing function too. extractLongestIf could be adapted from self.firstIndex(where: { !prefixFrom.contains($0) }). Neither requires String; they should be added to Collection in general.