SConstruct: Clean up install_or_link

In particular, don't generate hundreds of nested empty directories
all over the source tree for no reason.  The new version also works
for generated header files under build.