SpawnProcess: avoid fd_pipes interference

This fixes a random collision that can occur with FileDigester,
triggering malfunction and a KeyError.
test-fail-continue: mark complete, bug #452030
Warn if 2 make.profile dirs found, bug #452176
Warn if old make.globals found, bug #452176
SpawnProcess: improve dummy pipe allocation logic

By using allocated file descriptors for keys in fd_pipes, we naturally
avoid interference with callers such as FileDigester and MergeProcess.
See the _setup_pipes docstring for more benefits of this allocation
approach.
EbuildMetadataPhase: use dynamic pipe fd

Also, remove deprecated code from doebuild (with hardcoded pipe fd).
doebuild: tweak handling of _unused param
make.conf.5: document @preserved-rebuild
emerge: add reference to the portage(5) man page when failing

For example, the current licensing error message looks like:

 The following license changes (package.license) are necessary to proceed:
 #required by quake3-bin (argument)
 >=games-fps/quake3-bin-1.32c-r1 GPL-2 Q3AEULA

If you don't know much about licensing issues, this error message
doesn't help.  Instead, give references to the man page so people
can easily delve further.  Now it looks like:

 The following license changes are necessary to proceed:
  (see package.license in the portage(5) man page for more details)
 #required by quake3-bin (argument)
 >=games-fps/quake3-bin-1.32c-r1 GPL-2 Q3AEULA

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
portage(5): add more pointers to make.conf

Signed-off-by: Mike Frysinger <vapier@gentoo.org>