utf8.h, unicode_constants.h: Add some #defines.

These will be used in a future commit
utf8.h: White space only

Vertically align the definitions of a few #defines
utf8.c: Add omitted fold cases

The LATIN SMALL LETTER SHARP S can't fold to 'ss' under /iaa because the
definition of /aa prohibits it, but it can fold to two consecutive
instances of LATIN SMALL LETTER LONG S.  A capital sharp s can do the
same, and that was fixed in 1ca267a5, but this one was overlooked then.

It turns out that another possibility was also overlooked in 1ca267a5.
Both U+FB05 (LATIN SMALL LIGATURE LONG S T) and U+FB06 (LATIN SMALL
LIGATURE ST) fold to the string 'st', except under /iaa these folds are
prohibited.  But U+FB05 and U+FB06 are equivalent to each other under
/iaa.  This wasn't working until now.  This commit changes things so
both fold to FB06.

This bug would only surface during /iaa matching, and I don't believe
there are any current code paths which lead to it, hence no tests are
added by this commit.  However, a future commit will lead to this bug,
and existing tests find it then.
utf8.c: Add comment
regcomp.c: White-space only

Reflow comment to fit in 79 columns
regexec.c: Add comments, assertions
regcomp.c: Remove unreachable code

This code no longer gets executed, as the single multi-char fold in the
Latin1 range is pre-folded before this code sees it.  The surrounding
code didn't properly handle multi-char folds either.

Not having to deal with this allows us to not have to call the general
purpose function, but we do have to deal with one edge case
regcomp.c: White-space, comment only

Fit into 79 columns, add comment
fold_grind.t: Modify trie test

The trie tests just add an alternation of a fixed string.  This commit
makes that string the same number of bytes as the first alternative, in
an effort to not bias the test.  Otherwise, something that might
otherwise appear to be too short might be long enough to match the fixed
string, defeating properly testing the length.
regcomp.c: Split count variable into two: min, max

This is in preparation in later commits for the min and max to diverge.
This also renames the two variables to emphasize that bytes are what are
being counted, not characters.
regcomp.c: Create better estimate of trie match lengths

This commit improves the estimate of the length of a string that a trie
matches.  Before this, the estimate gave more false positives, and
required some workarounds which are no longer necessary, and future
commits will remove.

The ultimate answer is to know precisely what will be matched.  As noted
in the comments, this information is already largely available in a
global variable.  But more work there needs to be done to complete it,
and make it conveniently accessible.
Remove newly unnecessary regnode, code

The previous commit fixed things up so that this work-around regnode
doesn't have to exist; nor the work around for the EXACTFU_SS regnode
Remove no longer necessary constants

These character constants were used only for a special edge case in trie
construction that has been removed -- except for one instance in
regexec.c which could just as well be some other character.
Allow trie use for /iaa matching

This adds code so that tries can be formed under /iaa, which formerly
weren't handled.  A problem occurs when the string contains the LATIN
SMALL LETTER SHARP S when the regex pattern is not UTF-8 encoded.  I
tried several ways to get this to work easily, but ended up deciding it
was too hard, to in this one situation, a new regnode is created to
prevent the trie code from even trying to turn it into a trie.