Consolidate CLI-arg processing.

Provide routines from Charmonizer itself for parsing command line
arguments, rather than handling that task in each individual
charmonizer.c.
Provide access to generated Charmony config.

Once the "charmony" action has been run and the Perl config file
generated, provide access to the resulting config.
Capture numeric values for compiler version macros.
Detect and expose the GCC version number.
Add function revealing MSVC.
Add `extra_cflags` to Charmonizer's Compiler.

In addition to the CFLAGS passed to Charmonizer on the command line
(which represent the fixed compilation environment), make it possible to
add an additional set of flags from within the application.
Add accessors for cc, cflags.

Add some accessors for cc and cflags in addition to extra_cflags.
Normalize the spelling of "cflags" rather than "ccflags" or "cc_flags"
to represent the consensus that exists outside of the Perl community.
Capture build environment info with Charmonizer.

Add a new module, "BuildEnv" which captures data such as the name of the
compiler executable, compiler flags, and so on.
Add some EXTRA_CFLAGS using charmonizer.

Process debugging and valgrind-facilitating environment variables using
charmonizer.  Add a command-line argument to charmonizer to disable
threads.
Regenerate charmonizer.c.
Use charmonizer's EXTRA_CFLAGS in Perl bindings.

Start feeding the EXTRA_CFLAGS key generated by charmonizer, and migrate
the tests for LUCY_DEBUG and LUCY_VALGRIND to set extra compiler flags
from the Perl bindings to charmonizer.c.

As of this commit, flags which move to Charmonizer are only used when
compiling .c files from the `clownfish_params => source` dirs, and are
no longer supplied when compiling .xs binding files.
Go through charmonizer to disable threads/atomics.

Pass an argument to charmonizer to disable threads/atomics in Clownfish
instead of managing compiler flags within the Perl host build.

Furthermore, disable threads more often: whenever Perl was built without
threads, instead of only on OpenBSD and built with GCC.
Migrate more compiler flag probing to Charmonizer.

When possible, move probing for compiler flags which are used on core
source files out of the Perl build and into Charmonizer so that the
probing logic can be reused across other host builds.

Sometimes flags need to be duplicated rather than migrated -- for
instance, the "/TP" to make MSVC compile as C++ is still mandatory
because of our headers (though not because of the source content that
goes into $module.xs).
Restore lost HAS_BOOL flag, fixing MSVC build.

Our core source files don't need -DHAS_BOOL, but files such as
perl/xs/Lucy/Document/Doc.c which "fill in" functions left incomplete by
the core and pound-include the Perl headers need it.