Make unicode patterns usefully fast.

    Instead of eagerly forking for each byte and generating something
    that looks like this:

      fork-- abc
        \
         fork -- abd
          \
           fork -- bcd

    We generate something more like this:

       fork ab -- fork -- c
          \          \
            bcd       d

    Which means that far fewer threads are live at any time, and our
    runqueues are probably at least 10 times shorter.