This patch introduces (phony) build targets of the form
(1) stage<N>:<lib>:<name> (e.g: stage1:lib:Cabal) (2) stage<N>:<exe>:<name> (e.g: stage2:exe:ghc-bin)
where (1) builds the given library with the stage N compiler and (2) builds the
given executable with the stage N-1 compiler. This patch may be generating too
many such targets but it's a first stab that we can refine.
This fixes Trac #15949.