Merge _stub.o files into the main .o file (Fixes #3687 and #706)
Now GHC still generates the _stub.c files, but the object file is
automatically merged into the main .o file for a module. This means
that build systems (including GHC's own) no longer need to worry about
looking for _stub.o files and including them when linking.
I had to do lots of refactoring in DriverPipeline to make this work;
now there's a monad to carry around all the information, and
everything is a lot tidier.
The _stub.c is now created as a temporary file and removed after
compilation (unless the -keep-tmp-files flag is on).