This turned out to be a lot easier than I thought. Just moving a few
bits of -split-objs support from the build system into the compiler
was enough. The only thing that Cabal needs to do in order to support
-split-objs now is to pass the names of the split objects rather than
the monolithic ones to 'ar'.