pp_hot.c: Rmv unnecessary test

The strchr() cannot not succeed unless the first test fails, so the
first test need not be tried at all.
handy.h: White-space, comments, pod nit only
handy.h: Factor out common code

It turns out that the definitions for isASCII_LC and is_BLANK_LC end up
being the same for all three possible #if platform states, so can just
have them once instead of three times.

It is unlikely that the
    && ! defined(USE_NEXT_CTYPE)
is necessary, because HAS_ISASCII likely won't be defined, but this
makes sure that this doesn't change the previous behavior.
handy.h: Express locale macros using common base macros

This extracts out the code of looking up POSIX classes in locales to use
base macros common to all of them.  It does this for the NeXT only code
as well as the typical compilations.

This is in preparation for changing the behavior.  Certain things look
weird as they are aligned, etc as part of that preparation.
Use bit instead of node for regex SSC

The flag bits in regular expression ANYOF nodes are perennially in short
supply.  However there are still plenty of regex nodes possible.  So one
solution to needing to pass more information is to create a node that
encapsulates what is needed.  That is what commit
9aa1e39f96ac28f6ce5d814d9a1eccf1464aba4a did to tell regexec.c that a
particular ANYOF node is for the synthetic start class (SSC).  However
this solution introduces other issues.  If you have to express two
things, then you need a regnode for A, a regnode for B, a regnode for
both A and B, and another regnode for both not A nor B;  With three
things, you need 8 regnodes to express all possible combinations.  This
becomes unwieldy to write code for.  The number of combinations goes way
down if some of them are mutually exclusive.  At the time of that
commit, I thought that a SSC need not ever warn if matching against an
above-Unicode code point.  I was wrong, and that has been corrected
earlier in the 5.19 series.

But it finally came to me how to tell regexec that an ANYOF node is
for the SSC without taking up a flag bit and without requiring a regnode
type.  The 'next_off' field in a regnode tells the engine the offeset in
the regex program to the node it's supposed to go to after processing
this one.  Since the SSC stands alone, its 'next_off' field is unused,
and we can put anything we want in it.  That, however, is not true of
other ANYOF regnodes.  But it turns out that there are certain values
that will never be legitimate in the 'next_off' field in these, and so
this commit uses one of those to signal that this ANYOF field is an SSC.
regnodes come in various sizes, and the offset is in terms of how many
of the smallest ones are there to the next node to look at.  Since ANYOF
nodes are large, the offset is always > 1, and so this commit uses 1 to
indicate an SSC.
Rename regex internal flag bit

This is a clearer name; is used internally only in regcomp.c and
regexec.c
Panic if regex making a trie under /li

It does not make sense to try to make a trie using data that is not
determinable at runtime.  So don't pretend to try.
regcomp.c: request inlining of single line function
regcomp.c: Don't output empty debugging text

This code labels the information that is to follow, and was output even
if that information was empty, so it was confusing.  Now output only
when we know that there will be non-empty information to follow
Comments, white-space

This adds and modifies various comments in several files, rewrapping
some comments to occupy fewer lines but not exceed 79 columns.  And
fixes some indentation and other white space issues.  It includes
removing trailing white space in lines in regcomp.c.  I didn't think it
was worth making a commit for each file.
perlapi: Tighten strictures against using undocumented things

We didn't actually say that undocumented global variables and macros are
off-limits.
Add some cBOOL casts to macros

I kept getting burned by these macros returning non-zero instead of a
boolean, as they are used as bool parameters to functions.  So I added
cBOOLs to them.
regcomp.c: Move some code to earlier

This code isn't affect by and doesn't affect things between where it is
being moved to and where it is now.  Moving it will allow simplification
of an expression and also is needed in future commits
regcomp.c: Simplify expression

The previous commit has allowed us to remove the separate test for LOC,
and to replace the one for FOLD by ANYOF_LOC_FOLD.  The flags being
tested here can't be true unless LOC is also true, so testing for it is
superfluous.
perlunicode: Wrap some lines

This is to make source readable in 79 column window
regcomp.c: Extract out code into a separate function

This is in preparation for it to be called from a 2nd place.
reg_posixcc.t: Improve test names

The test names dated to before feature unicode_strings, and were
misleading.
lib/locale.t: Remove no longer needed SKIPS

locale.t has changed so if tests in some locales fail, it still passes,
provided that most locales work.  Thus this code whose effect was to
know about some broken locales and SKIP them, is no longer needed.
t/loc_tools.pl: Extract out finding locales from locale.t

Several different test files need to find the locales on the system, and
each currently has rolled its own methods to do that.  This commit
creates a new file t/loc_tools.pl which is designed to be a common
place for these tools.

lib/locale.t did the most thorough job of finding locales, so
t/loc_tools.pl is built upon what it had, which is now deleted from
locale.t.

The code in t/loc_tools.pl was copied from lib/locale.t with white space
changes and changes to make this be a subroutine, and helper functions
renamed to begin with an underscore, and changing the hard-coded list to
be in a DATA section so it doesn't have to be actually used unless
necessary.
t/run/locale.t: Use common code for finding locales

Instead of using its own ungeneral code for finding the available
locales on the system, use the new common, and more general, code.

This means this test will now run on more systems, where it currently is
skipped