Redmine #2971: reset SIGPIPE signal handler to have a sane behavior of piped commands within child
Add test for reading large strings from textfile
Add test for long string defined from module
Add test to make sure we dont crash when list elements are very long
Fix --enable-debug regression while still enabling overridable CFLAGS.

AC_PROG_CC sets some default values for CFLAGS on some systems, so
we need to separate between those, and flags that are passed in from
the command line.
Leak-fix: delete the list passed to FnCallNew().

FnCallNew makes its own copy of the list it's passed, and the parser's
original is no longer needed, so the parser should tidy it away.  I'd
previously cleared it, but hadn't realised we still owned it !

2394 blocks definitely leaked, 57k directly plus 123k indirectly.
Leak-fix: GenericAgentConfigDestroy() neglected two members.

The original_input_file and input_dir were first cleared away and then
set by GenericAgentConfigSetInputFile() but weren't being released at
the end of the object's life-time.
Leak-fix: handing off ownership to AppendItem(), which makes its own copy.

AddOpenPorts() called StringWriterClose() and passed the result in to
AppendItem(), which doesn't take over ownership; so it was leaked.
Use StringWriterData() instead and do a simple WriterClose() after.
Leak-fix: MonitorStartServer() neglected to yield a lock it had acquired.

So, naturally, it leaked thislock.lock.
PolicyAppendBundle(): constify its Rlist *args.
Skip the unused FnCallDatatype (using #if-ery).
add a class for android

This class use busybox for all the commandline tools.
The Android Open Source Project use 'toolbox' for the shell (implemented from scratch by Google).
However toolbox is very limited. Busybox is easily installable on Android and provide a set of tools
much more closer to the standard tools found on the other Unixes.
Redmine 3572: reworked reading of non-fncall values

Made failure to read string as int or real, when specified as such, a
PROMISE_RESULT_FAIL, instead of setting to a bogus value.  Reworked
the block that handles this so as to avoid repetition of code.  This
fixes parsing of simple values from unexpanded variables; a later
convergence pass shall see the variables expanded and succeed.
Includes acceptance tests for general parsing of numbers, the basic
problem and regextract usage.
Moved a test outside a loop to save a waste of time.

In BundleResolve(), looping over promise-types doesn't change the
bundle type; and we did nothing inside the loop unless the bundle type
is "common", so may as well test that before entering the loop,
instead of each time round the loop.  Tidied up a bit, too: split some
long lines, killed a boring blank line.
Compile-fix: use correct formatter for size_t parameter.
Add STACK_FRAME_TYPE_PROMISE_TYPE
Move promise_logging into eval_context
Roll promise logging into EvalContext

This lets logging follow the stack more closely
Logging, prepend stack path for all stack frame types
libpromises/evalfunction.c: minor function argument docstring updates