Avoid POSIX::close when closing files by descriptor in IPC::Open3

Closing a file descriptor with POSIX::close bypasses PerlIO's ref-counting
of file descriptors and leads to MSVC++'s invalid parameter handler being
triggered when the PerlIO stream is closed later because that attempts to
close the underlying file descriptor again, but it's already closed.

So instead, we effectively fdopen() a new PerlIO stream and then close it
again to effect the closure of the file descriptor.
Fix a couple of headings in perlgit.pod which look to be the wrong level
Document how to create and use smoke-me branches

The instructions are based on the following helpful email from Tony Cook:
http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2012-09/msg00747.html
after I tested them myself in course of commit 8700fd3876.
perldelta for 8700fd3876
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.