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.
remove a promise_repaired class from reports: type promise.
Make extension loading more verbose and fix loading when non-root.

In non-root mode we need to check two folders, the home folder, and
/var/cfengine/lib

Redmine #4534.
Merge pull request #1426 from phnakarin/fix#bootstrap

remove a promise_repaired class from reports: type promise.
Merge pull request #1438 from kacfengine/extension_loading

Make extension loading more verbose and fix loading when non-root.
Fix release_id being empty when running cf-agent -f update.cf.

We now use the cf_promises_release_id file in inputs/, regardless of
which file is specified with -f.
Merge pull request #1439 from kacfengine/update_cf_and_release_id_fix

Fix release_id being empty when running cf-agent -f update.cf.
Fix leak in FilterInternal
Fix USE_VALGRIND support for acceptance tests
Move global promise lock cache into EvalContext

Clear on EvalContextClear, pacify valgrind
Fix leak in ParserState current_namespace
Add valgrind suppression file for acceptance test

Somewhat of a start, please contribute
Merge pull request #1394 from ediosyncratic/vars-3572-fix

Fix for part of Redmine 3572, plus some tidy-up.
Merge pull request #1407 from CedricCabessa/android

add a class for android
Several fixes to testall for Windows.

- Add --bindir parameter. This is much more convenient than listing
  each tool separately, but the technical reason is that Windows
  requires all necessary DLLs to be in the same directory as the
  executable. Therefore we cannot merely copy each binary into the
  temporary workdir; we need to copy the whole bin directory.
- Remove unused --no-nova parameter.
- Different GAINROOT default for Windows.
- Use hardlinks on Windows (see comment for why).
- Remove shell IFS setting. It was added because it makes it easier
  to deal with paths with spaces in them, but I believe we have
  covered all those cases with quotes now, and IFS interferes with
  LN_CMD having a space followed by arguments in it.