valgrind: Add --support-valgrind configure option
When --enable-valgrind is passed, PCRE will annotate some memory regions
as unaddressable, aiding in finding invalid memory accesses when running
under valgrind. This is useful mostly for debugging PCRE itself, and thus
probably should not be enabled in release builds.

pcre32: pcretest: Don't convert data line to UTF-8 first
While reading the data lines, directly put them into the 8, 16 or
32 bit buffers instead of first converting them into UTF-8 and only
afterwards converting that buffer to 16/32 bit. This is necessary so
the in 32 bit mode the \x{} escapes can use the full 32-bit range
(while the non-standard 5/6 byte UTF-8 sequences can only express
characters up to 31-bits).

pcre32: Mask out bits >= 22 on 32-bit characters in UTF-32 mode
UTF-32 only uses 21 bits, so the upper bits may be used to store flags
etc. To allow passing the unmodified internal buffers to pcre32, make
pcre32 mask out those upper bits.
TODO: do the same for the JIT compiler, and add tests

pcre32: compile: Encode back references as negative numbers
Return the back reference as negative numbers from check_escape(),
instead of adding them to ESC_REF. This way, there will never be an
overflow.

pcre32: compile: Make check_escape return the data character in an out param
check_escape needs to return both the escape code and possibly a data
character. Return the data character in an out param instead of mixing
it with the escape code; this is in preparation to making the character
a pcre_uint32 to enable the full 32-bit range in pcre32 in non-UTF-32
mode.

pcre32: Add 32-bit library
Create libpcre32 that operates on 32-bit characters (UTF-32).
This turned out to be surprisingly simple after the UTF-16 support
was introduced; mostly just extra ifdefs and adjusting and adding
some tests.

General spring-clean of EBCDIC-related issues in the code, which had decayed
over time. Also the documentation. Added one test that can be run in an ASCII
world to do a little testing of EBCDIC-related things.

Refactoring to reduce stack usage for possessively quantified subpatterns. Also
fixed a number of bugs related to repeated subpatterns. Some further tidies
consequent on the removal of OP_OPT are also in this patch.

(1) Move internal flags out of the options field, to make room.
(2) \r and \n must be explicit to trigger the special CRLF handline exception.
(3) (?J) at the start now sets JCHANGED as well as DUPNAMES.

Updated the support (such as it is) for Virtual Pascal, thanks to Stefan
Weber: (1) pcre_internal.h was missing some function renames; (2) updated
makevp.bat for the current PCRE, using the additional files !compile.txt,
!linklib.txt, and pcregexp.pas.