Integrate multiple output support into stdenv's setup.sh

Also, apply certain fixup actions (such as stripping) to all outputs
rather than just $out.  This is done in the new function fixupPrefix.
Put setup hooks in the dev output if it exists
Provide a function "stripDir" to strip a single directory tree
fixupPrefix: Ignore missing outputs
fixupPrefix: Make the prefix writable first

This ensures that strip and other commands work correctly (since
sometimes the install phase will make the installed files read-only).
Respect the setOutputConfigureFlags attribute

If this attribute is set to true (default), then setup.sh will add
configure flags for multiple output support, such as --includedir.
Don't assume that there is an "out" output
patchELF: Accept a directory argument
Remove redundant "building /nix/store/..." message

Nix already says that, so no need to repeat it.
fixupPhase: Handle the case where "outputs" is not set
libdrm: Use multiple outputs
libpng: Use multiple outputs
Cleanup