Idea and file format shamelessly stolen from CheriBSD, but reimplemented
in terms of the standard FreeBSD build system. We'll use this in some
events that call for a deeper cleansing, typically reserved for
situations where the dependencies are too complicated to unwind. This
notably does not preclude us from doing separate cleansing of world for
specific src.conf(5) knob changes that would require a rebuild.
In the FreeBSD version, we either stamp the OBJTOP we're cleaning
(either bootstrap or the full OBJDIR) with the current epoch and bail
out for unstamped objdirs, or we compare and either rm -rf or
cleandir as necessary.
This is very much so a prototype for discussion, so pardon any
horrifying oversights.