Change default behaviour of build to mean rebuild all
Change default behaviour of build to mean rebuild all

The build without any targets now behaves as if all defined packages were
enumerated on the command line which causes all of their targets (excluding
clean as usual) to be rebuilt. The only difference with specifying all targets
manually is that unless some output controlling option such as --progress and
--follow was given the --quiet is set implicitly to avoid spamming the console.

Actually "rebuild" here means just calling packages build systems again which
will conclude that there is nothing to be done if already built and no files
were changed so not much work should be done in a usual case. So an empty build
command can now be used to quickly bring the whole build root up to date or if
you've made changes in different projects and do not want to enumerate them
manually -- the build system will figure out the correct order.

The previous default was a historical inconsistency contrasting with the usual
"empty means all" convention for command arguments and targets. Now an empty
build should be more useful. The previous behaviour is still available by
specifying --no-rebuild option which was implemented for a long time already but
very rarely used in practice.

bazurbat/jagen