initrd: Handle ${DESTDIR} when building rescue tools
When building rescue tools for a target system (e.g., create release
build), use tools (e.g., crunchide, crunchgen, cc), headers and libraries
from the target root (${DESTDIR}).
NOTE:
GCC is more tolerant (e.g., doesn't warn about unused variables) to
system headers than user headers, so we have to use "-isystem <inc_dir>"
instead of "-I<dir>", but the former (option syntax) causes difficulty
for <bsd.dep.mk> to filter the options to call mkdep(1). Therefore, we
use "--sysroot=${DESTDIR}" and it's simpler than specifying headers paths
with "-I<dir>" and library paths with "-L<dir>".
Meanwhile, improve the commands logic in Makefile, and set LC_ALL=C.