regcomp.c: Wrap some long lines
Fix \X handling for Unicode 5.1 - 6.0

Commit 27d4fc33343f0dd4287f0e7b9e6b4ff67c5d8399 neglected to include a
change required for a few Unicode releases where the \X prepend property
is not empty.  This does that, and suppresses a mktables warning for
Unicode releases prior to 6.2
Unicode/UCD.pm: Clarify pod
/regcharclass.pl, utf8_strings.pl: Add guard to .h

Future commits will have other headers #include the headers generated by
these programs.  It is best to guard against the preprocessor from
trying to process these twice
regen/utf8_strings.pl: Copy empty input lines to output

This allows the generated .h to look better.
regen/utf8_strings.pl: Allow explicit default on input

An input line without a command is considered to be a request for the
UTF-8 encoded string of the code point.  This allows an explicit
'string' to be used.
regen/utf8_strings.pl: Add ability to get native charset

This adds a new capability to this program: to input a Unicode code point and
create a macro that expands to the platform's native value for it.

This will allow removal of a bunch of EBCDIC dependencies in the core.
Rename regen'd hdr to reflect expanded capabilities

The recently added utf8_strings.h has been expanded to include more than
just strings.  I'm renaming it to avoid confusion.
Remove some EBCDIC dependencies

A new regen'd header file has been created that contains the native
values for certain characters.  By using those macros, we can eliminate
EBCDIC dependencies.
ext/B/B.xs: Remove EBCDIC dependency

These are unnecessary EBCDIC dependencies: It uses isPRINT() on EBCDIC,
and an expression on ASCII, but isPRINT() is defined to be precisely
that expression on ASCII platforms.
utf8.h: Correct improper EBCDIC conversion

These macros were incorrect for EBCDIC.  The relationships are based on
I8, the intermediate-utf8 defined for UTF-EBCDIC, not the final encoding.
I was the culprit who did this orginally; I was confused by the names of
the conversion macros.  I'm adding names that are clearer to me; which
have already been defined in utfebcdic.h, but weren't defined for
non-EBCDIC platforms.
utf8.h: White-space only

This reflows some lines to fit into 80 columns
utf8.h: Save a branch in a macro

By adding a mask, we can save a branch.  The two expressions match the
exact same code points.
regen/regcharclass.pl: Handle ranges, \p{}

Instead of having to list all code points in a class, you can now use
\p{} or a range.

This changes some classes to use the \p{}, so that any changes Unicode
makes to the definitions don't have to manually be done here as well.
regen/regcharclass.pl: Remove Encode:: dependency

Newer options to unpack alleviate the need for Encode, and run faster.
regen/regcharclass.pl: Work on EBCDIC platforms

This will now automatically generate macros for non-ASCII platforms,
by mapping the Unicode input to native output.

Doing this will allow several cases of EBCDIC dependencies in other code
to be removed, and fixes the bug that this previously had with non-ASCII
platforms.
regen/regcharclass.pl: Fix bug for character '0'

The character '0' could be omitted from some generated macros due to
it's testing the value of a hash entry (getting 0 or false) instead
of if it exists or not.
regen/regcharclass.pl: Change to work on an empty class

Future commits will add Unicode properties for this to generate macros,
and some of them may be empty in some Unicode releases.  This just
causes such a generated macro to evaluate to 0.
regen/regcharclass.pl: Generate macros for \X processing

\X is implemented in regexec.c as a complicated series of property
look-ups.  It turns out that many of those are for just a few code
points, and so can be more efficiently implemented with a macro than a
swash.  This generates those.
regexec.c: Use new macros instead of swashes

A previous commit has caused macros to be generated that will match
Unicode code points of interest to the \X algorithm.  This patch uses
them.  This speeds up modern Korean processing by 15%.

Together with recent previous commits, the throughput of modern Korean
under \X has more than doubled, and is now comparable to other
languages (which have increased themselved by 35%)