* i18n: keep fold search, isolate wrapping and locale fallbacks linear
- Folded::matches restarted str::find one character past every occurrence
turned down at a combining mark, so overlapping occurrences of a long
needle cost haystack x needle. It now finds every occurrence, overlapping
ones included, in one Knuth-Morris-Pratt pass and checks the boundaries
as before.
- wrap searched the whole open-control stack for an isolate at every PDI;
it now keeps a count of open isolates.
- candidates made one joined prefix per subtag of a locale tag of any
length; a tag longer than 128 bytes is not a locale and has none.
* address review: length check only on the public candidates entry