Hadrian: Add support for building stage3
This ticket enables the building of a stage3 compiler by making the
build logic more consistent and predictable in Hadrian.
Two of the main changes are:
- In order to build anything at stageN we use the package database
present at stageN. Fixing Trac #16069
- haddock and ghc-tags are built
as stage1 executables (with the stage1 compiler) rather than as
stage2 compiler. Fixing
In order to build a stage3 compiler, you have to set the new finalStage hadrian option to Stage3.