Hide away debug messages in the build.
Merge pull request #374 from sjrd/hide-build-debug-messages

Hide away debug messages in the build.
Fix #375: Factor out tools in a reusable library.

Currently, this includes the preoptimizer, aka dce, as well
as the optimization via Closure.
Fix #376: regression in packageJS performance.

The mistake was shamefully stupid.
Since 22a579c938de0ddf19176e3b57276547b9b8e649, we have been
using data stored in .sjsinfo files to sort the files to be
fed to packageJS instead of a prefix to the file name.
Opening that file and actually reading its content is of
course slower than taking a prefix of the file name, but it
was not supposed to be a bottleneck compared to reading the
file itself and, worse, its source map and all the complicated
parsing of the source map. And indeed it is not, assuming these
processings are actually done.

However, when no source file has changed (which is often the
case for extdeps), opening the .js and .js.map files is *not*
done (which is a good thing), but **the .sjsinfo file was read
all the same**, because we used to sort the .js files as part
of the (sources in packageXyzJS) tasks, which is always run,
irrespective of whether a file has changed or not.

So the fix was easy: only sort .js input files inside the block
of code protected by the caching mechanism, so that it is also
executed only when a file has changed.
Merge pull request #378 from sjrd/fix-packagejs-slowness

Fix #376: regression in packageJS performance.
Partial #288: Add neg-partest framework for Scala.js specific stuff
Partial #308: All neg from old HelloWorld. TODO: AST inspection
Merge pull request #379 from gzm0/neg-tests-clean

Neg tests clean
Merge pull request #377 from sjrd/factor-out-tools

Fix #375: Factor out tools in a reusable library.