update for dist scripts.
More work on data-source configuration support.

We can't stack a random set of entries into a cfg[] because we don't
want to allocate memory in the API.  Instead, whenever a method's
arguments are reconfigured, re-build the base configuration string by
appending the new configuration, and re-build the checks array, that way
we always have a single base configuration string and a single checks
array.

Re-work how we're handling lists, we can't expect the application to
crack them, they can be seriously messy.  If it's a list, create an
array of NULL-terminated refrences to nul-terminated strings (create
an "argv" array, in other words).  It's ugly, and the user has to free
the memory, but I don't see an alternative.