Ensure that releases built from different source paths are reproducible.
Currently they are not since src and obj paths appear in DWARF info.
There are a few uses of FILE in the src tree as well, they are
handled by this change as well.
Use /usr/src and /usr/obj as the canonical src and obj paths when
WITH_REPRODUCIBLE_BUILD is defined. Define a DEBUG_PREFIX variable
which is used to ask the compiler to substitute paths in output files
using -ffile-prefix-map.
Compat builds (i.e., lib32) complicate things, since they override
OBJROOT to point to obj-${compat} but still refer to headers from the
native objroot (e.g., llvm headers). I have a hack for this case, but
suggestions for better solutions are welcome.