When I wrote the original split-external-iterator a while ago, having the extra `byte < 128` check made it noticably slower: I'd prefer the ascii-only `CharSep`s to have to make this check themselves if they need to, since it's entirely unnecessary when splitting on just `'\n'` or `'  '` (for example). Of course, this would be comprehensively answered with some benches.

Also, what's the motivation for moving the "which type of iterator should I use" decision into `next`? It seems like it could easily be a significant performance regression (I guess LLVM handles it pretty well though).