perl5180delta: typo
Add sv_pos_b2u_flags

This, similar to sv_pos_u2b_flags, is a more friendly variant of
sv_pos_u2b that works with 2GB strings and actually returns a
value instead of modifying a passed-in value in place through
a pointer.

The next commit will use this.
[perl #72766] Allow huge pos() settings

This is part of #116907, too.  It also fixes #72924 as a side effect;
the next commit will explain.

The value of pos($foo) was being stored as an I32, not allowing values
above I32_MAX.  Change it to SSize_t (the signed equivalent of size_t,
representing the maximum string length the OS/compiler supports).

This is accomplished by changing the size of the entry in the magic
struct, which is the simplest fix.

Other parts of the code base can benefit from this, too.

We actually cast the pos value to STRLEN (size_t) when reading
it, to allow *very* long strings.  Only the value -1 is special,
meaning there is no pos.  So the maximum supported offset is
2**sizeof(size_t)-2.

The regexp engine itself still cannot handle large strings, so being
able to set pos to large values is useless right now.  This is but one
piece in a larger puzzle.

Changing the size of mg->mg_len also requires that
Perl_hv_placeholders_p change its type.  This function
should in fact not be in the API, since it exists
solely to implement the HvPLACEHOLDERS macro.  See
<https://rt.perl.org/rt3/Ticket/Display.html?id=116907#txn-1237043>.
sv.c: Remove overflow check in utf8 length cache

In order to make large values of pos() possible, the previous commit
enlarged the mg_len field of the magic struct.  That field is also
used for cached utf8 length values.  Since it is now large enough to
store any length the OS/compiler supports, the overflow never happens.
fix typo in sv.c apidocs

sv_pos_u2b_flags has no offsetp parameter.  This was copied from
sv_pos_u2b.
pos.t: test something I almost broke