Bug 748138 - Always export CC, CXX and a few other variables to libffi's configure. r=ted

Also, always pass --build and --host.
Bug 462427 - Stop requiring CROSS_COMPILE being set. r=ted
Bug 946687 - Move ICU detection from configure.in and js/src/configure.in into build/autoconf/icu.m4. r=gps
Bug 968537 - Build js-config from configure instead of Makefile. r=ted
Bug 968561 - Move ffi detection from configure.in and js/src/configure.in into build/autoconf/ffi.m4. r=gps
Bug 968652 - Remove EXTERNAL_SOURCE_DIR for mfbt. r=gps
Bug 969164 - Move libffi subconfigure invocation in build/autoconf/ffi.m4. r=gps
Bug 969164 - Move icu subconfigure invocation in build/autoconf/icu.m4. r=gps
Bug 969164 - Create subconfigure directory in the AC_OUTPUT_SUBDIRS wrapper. r=gps

We happen to be lucky currently because e.g. build is created by config.status
before we subconfigure in build/clang-plugin. But further changes break that
luck.
Bug 969164 - Use per-directory config in sandboxes when reading moz.builds. r=gps
Bug 969164 - Traverse js/src moz.builds from top-level configure. r=gps

Before, we would run configure in both top-level and js/src, and both
configures would traverse their own set of moz.builds, without actual
knowledge about the other. With this change, both configures still run,
but only top-level traverses moz.build files, and uses js/src's
config.status when traversing its moz.build files. This allows a better
sharing of information between both build systems and the removal of many
hacks.

This also moves running libffi and icu configure to top-level.

Standalone js builds still have their own configure doing moz.build traversal,
as before.

--HG--
rename : config/autoconf.mk.in => config/autoconf-js.mk.in
rename : config/emptyvars.mk.in => config/emptyvars-js.mk.in
Bug 969164 - Replace most BUILDING_JS uses with JS_STANDALONE. r=gps

Before making top-level traverse js/src moz.build files, there was a need to
distinguish between top-level traversing e.g. top-level moz.build or
config/moz.build and js/src traversing them. With a single traversal of both
moz.build sets, we now only need to distinguish between js standalone builds
and gecko builds.

There is still, however, a need to distinguish between top-level vs. js/src
configure runs on gecko builds to make them subconfigure icu and libffi from
top-level instead of js/src in js standalone builds, or when choosing to make
js/src's config.status do something when run or not.