no_utf8_pm.t: Add blank between 'not' and 'ok' in .t
handy.h: Fix isBLANK_uni and isBLANK_utf8

These macros have never worked outside the Latin1 range, so this extends
them to work.

There are no tests I could find for things in handy.h, except that many
of them are called all over the place during the normal course of
events.  This commit adds a new file for such testing, containing for
now only with a few tests for the isBLANK's
regcomp.c: Use more inversion lists in [] char classes

This changes the building of bracketed character classes to use
inversion lists instead of a bitmap/inversion list combination.

This will lead in later commits to simplification and extending
optimizations to beyond the Latin1 range.
regcomp.c: Remove unnecessary 'if' test

A previous commit has refactored things, so this test is always true
regcomp.c: White-space, comments only

This indents, outdents previous code, based on new/removed outer blocks.
It reflows comments and code to fit into 80 columns, add/removes blank
lines, minor comment rewording
regcomp.c: Remove obsolete code

A previous commit has removed all calls to these two functions (moving a
large portion of the bit_fold() one to another place, and no longer sets
the variable.
regcomp.c: Have a subroutine do the work

Since this code was originally written, the fold function has added
input flags that cause it to do the same thing this code does.  So do it
in the subroutine.
regcomp.c: Rename variable to reflect new purpose

This variable really holds the list of all code points the bracketed
character class matches; it's not just the ones not in the bitmap.
regcomp.c: Simplify compile time [^..] complement

This simply moves the code that populates the bitmap and combines the
two inversion lists to after the inversion (the differences are shown
much greater than there really are, since a move is done.)  This greatly
simplifies complementing the character class.
reg_fold.t: Make test cases non-optimizable away

This commit changes the bracketed character classes to include a
non-related character.  This is in preparation for a future commit which
would cause the current character classes to be optimized into EXACTish
nodes which would start passing TODO tests, but don't fix the underlying
problem with character classes.  That bug is that you can't split a
multi-char fold across nodes. It probably is not fixable in Perl without
a total restructuring of the regular expression mechanism.  For example,
"\N{LATIN SMALL LIGATURE FFI}" doesn't match /[f][f][i]/i.  But it would
if those got optimized into a single EXACTF node.  (The problem is not
limited to character classes, /(f)(f)(i)/i also doesn't match, and
can't, as $1, $2, and $3 are not well-defined.)
regcomp.sym: Reorder a couple of nodes

This causes all the nodes that depend on the regex modifier, BOUND,
BOUNDL, etc. to have the same relative ordering.  This will enable a
future commit to simplify generation of the correct node.
regcomp.c: Simply some node calculations

For the node types that have differing versions depending on the
character set regex modifiers, /d, /l, /u, /a, and /aa, we can use the
enum values as offsets from the base node number to derive the correct
one.  This eliminates a number of tests.

Because there is no DIGITU node type, I added placeholders for it (and
NDIGITU) to avoid some special casing of it (more important in future
commits).  We currently have many available node types, so can afford to
waste these two.
regcomp.c: Optimize e.g., /[^\w]/, /[[^:word:]]/ into /\W/

This optimizes character classes that have a single element that is one
of the ops that have the same meaning outside (namely \d, \h, \s, \w,
\v, :word:, :digit: and their complements) to that op.  Those
ops take less space than a character class and run faster.   An initial
'^' for complementing the class is also handled.
regcomp.c: Optimize /[0-9]/ into /\d/a

The commonly used [0-9] can be optimized into a smaller, faster node
that means the same thing.
perlguts: Document that PV can point to non-string