perlapi: Clarify hv_fetch() docs

I was confused by the earlier documentation.  Thanks to Leon Timmermans
for clarifying, and to Vicent Pitt for most of the wording
regcomp.c: Clarify, update comments, white-space reflow
regcomp.h: Fix up comment
regcomp.h: Free up bit; downside is makes locale ANYOF nodes large

There have been two flavors of ANYOF nodes under /l (locale) (for
bracketed character classes).  If a class didn't try to match things
like [:word:], it was smaller by 4 bytes than one that did.

A flag bit was used to indicate which size it was.  By making all such
nodes the larger size, whether needed or not, that bit can be freed to
be used for other purposes.

This only affects ANYOF nodes compiled under locale rules.  The hope is
to eventually git rid of these nodes anyway, by taking the suggestion of
Yves Orton to compile regular expressions using the current locale, and
automatically recompile the next time they are used after the locale
changes.

This commit is somewhat experimental, done early in the development
cycle to see if there are any breakages.  There are other ways to free
up a bit, as explained in the comments.  Best would be to split off
nodes that match everything outside Latin1, freeing up the
ANYOF_UNICODE_ALL bit.  However, there currently would need to be two
flavors of this, one also for ANYOFV.  I'm currently working to
eliminate the need for ANYOFV nodes (which aren't sufficient,
[perl #89774]), so it's easiest to wait for this work to be done before
doing the split, after which we can revert this change in order to gain
back the space, but in the meantime, this will have had the opportunity
to smoke out issues that I would like to know about.
utf8.c: Create API so internals can be hidden

This creates a function to hide some of the internal details of swashes
from the regex engine, which is the only authorized user, enforced
through #ifdefs in embed.fnc.  These work closely together, but it's
best to have a clean interface.
regcomp.c: Convert boolean variable from a UV

It's a little clearer to use boolean for a true/false valued variable
regcomp.c: Keep separate list for [:word:] from \p{Word}

This commit separates out the building up of code points that match the
posix properties (including \w, \d, \s) from those that match Unicode
properties.  This will prove useful in future commits
regcomp.c: set local flag in pass1 of charclass inversion

Previously, this flag was not looked at in pass 1, but future commits
will require it to be.  The regnode is not actually allocated in pass1,
so set a local variable with the value, and set the flag in the regnode
after everything affecting the flag is done.
regcomp.c: Refactor code into a function

Future commits will use this functionality in additional places beyond
the single one currently.  It makes sense to abstract it into a
function.
Only generate above-Uni warning for \p{}, \P{}

This warning was being generated inappropriately during some internal
operations, such as parsing a program; spotted by Tom Christiansen.

The solution is to move the check for this situation out of the common
code, and into the code where just \p{} and \P{} are handled.

As mentioned in the commit's perldelta, there remains a bug
[perl #114148], where no warning gets generated when it should