[mk] Retire re-* targets: reconfigure, rebuild, reinstall

Those re-* targets have been useless (and deprecated) for a while now (since
about 91ce0bd, Feb 2011).

[reminder: simply invoking one of the targets (configure, build or install)
explicitly always re-does the corresponding action.]
[mk] Fix a few abusive use of ${RECURSIVE_MAKE}

The use of ${RECURSIVE_MAKE} should be reserved to real recursion, that is the
invocation of 'make' for a public toplevel robotpkg target of a different
package than the current one. Otherwise, just ${MAKE} is enough.
[mk] Let bulk archive CMakeCache.txt when relevant (same as config.log)
[mk] Fix slightly incorrect dependency extraction in the bulk-<set> target

The dependency extraction (and topological sort) in a bulk-<set> must take into
account the expected LOCALBASE setting (which is ${BULKBASE}) in order to
see the very same list of dependencies as the bulk target. To do so, update
the semantics of the '-t' argument of tsort-set.awk to mean "any argument to be
passed down to ${MAKE}" (instead of just the list of expected targets) and use
that to pass LOCALBASE.

At the moment, the only visible effect is to change the default value of
PREFER.pkg_install (which is automatically set to system). But this avoids
circular dependencies with any bootstrap dependencies of pkg_install
(currently, at most archivers/pax and pkgtools/pkgrepo2deb for the 'package'
target, but this could grow).
[mk] Fix a corner case issue with {bootstrap-,}depends cookies

When the {bootstrap-,}depends cookie already exist when it is about to be
created, do not fail. The failure was used as an assertion, because the cookie
is not supposed to exist at this point. However:

- The failure is more or less ignored by 'make' since it happens in the
  context of a "makefile rebuilding rule" (see make(1) for details). So the
  failure is not even informative.

- It prevents any further attempt to rebuild the included cookie, which can
  have bad consequences (outdated or inacurate cookie).

- It can happen that the cookie already exist for a good reason, for instance
  after a recursive invocation of a toplevel robotpkg target for the same
  package. (some targets do that, in particular 'make package'). Instead of
  failing, it is way better to exit 0 and let make decide if the cookie should
  be rebuilt once again, thanks to the dependencies on the cookie that are
  properly tracked already.
[mk] Fix detection of a dependency cycle in the tsort-set function

Cycle detection worked fine, but could not actually recover from the
problem and did not report an error.

Fix by forcibly decrementing the edge number of the package with the smallest
number of edges in the graph, and report errors.
[mk] Fix separation logic between build.mk and build-vars.mk

Cleanup build-vars.mk so that it does not define any rule, let build.mk include
its required build-vars.mk (not the other way round). This is required to make
sure that targets that are not related to the build do not trigger (for
instance) any dependency resolution.

By design, *-vars.mk are supposed to define only variables, while the files
without -vars are supposed to enable rules (and related dependencies). For
historical reasons, this separation is not really achieved yet, but the build/
phase is now clean.
[mk] Fix the separation between pkg-vars.mk and package.mk

pkg/pkg-vars.mk should not include pkg/package.mk, so do it the other way
round: let the toplevel package/package.mk require pkg/package.mk

This is important because pkg/package.mk defines the required dependencies for
the 'package' target. Those should not be pulled in for any other target.
[mk] Fix separation between extract-vars.mk and checkout.mk

extract-vars.mk should not include checkout.mk, as this unnecessarily pulls in
the extra dependencies required for a 'make checkout'. Do it the other way
round: let checkout require extract-vars.mk
[mk] Add missing dependency in bulk.mk on clean.mk for the 'clean' target
[mk] Do not export compiler flags but pass them through ALL_ENV instead

Compiler flags (CFLAGS, CPPFLAGS etc.) are typically only appended to with +=
to preserve user settings. Exporting them is harmful since recursive ${MAKE}
invocations will see their value appended multiple time.

Place them in ${ALL_ENV} instead, so that they are passed only in the
environment of the appropriate targets (configure, build, install etc.)
[mk] Clarify error message when invoking `make package` on an outdated package
[pkgtools/pkg_install] Drop obscure NO_PKGTOOLS_REQD_CHECK variable

NO_PKGTOOLS_REQD_CHECK is inherited from pkgsrc, but its sole purpose in
robotpkg is now to avoid the stupid circular dependency on pkg_install with
itself.

Rewrite a better depend.mk just filtering out this corner case and drop the
NO_PKGTOOLS_REQD_CHECK variable forever.
[pkgtools/libnbcompat] Drop useless NO_PKGTOOLS_REQD_CHECK

This has been superfluous for a long time, and this is now completely unused.
[pkgtools/tnftp] Drop now useless NO_PKGTOOLS_REQD_CHECK statement
[pkgtools/pkg_install] Save a few useless 'builds' but add a missing one

It is necessary to use the newly built robotpkg_* tools only when upgrading
from an older version (or from the -0 bootstrap version, which is covered by
the same logic). Otherwise the already installed tools are just fine.

But if the new tools are needed, pre-bulk must be hooked to the build, since
'bulk' needs robotpkg_{add,delete}.
[pkgtools/pkg_install] Depend on pax only for the 'package' target

The 'package' target needs pax for building the bootstrap.tar.gz archive, but
pax is otherwise not needed. So depend on it just when building a binary
package.

This is especially useful when PREFER.pax = robotpkg is used, as this avoids to
rely on a special 'inplace' depend.mk just for that (rare) situation.
[archivers/pax] Drop useless 'inplace' depend strategy

This was required only when building a binary package for pkgtools/pkg_install
with PREFER.pax = robotpkg, and this has just been fixed.
[pkgtools/pkgrepo2deb] Convert to a regular (downloaded) package

The boostrapping issues have been worked out, so this package can become a
regular package. Do the same hack as pkg_install/depend.mk, automatically
configuring this package as 'system' in ${ROBOTPKG_BASE} when ${ROBOTPKG_BASE}
is not the same as ${LOCALBASE}.
[robots/mor-libs] Add missing dependency on autoconf (+ sort lines)

The dependency was automatically pulled in before the cleanup in mk
(extract-vars.mk vs. checkout.mk), so it was overlooked.