Invoke Haddock directly from the build system, instead of via Cabal
Partly this is cleaner as we only have to preprocess the source files once, but also it is necessary to avoid Haddock recompiling source files when Template Haskell is in use, saving some time in validate and fixing a problem whereby when HADDOCK_DOCS=YES, make always re-haddocks the DPH packages. This also needs an additional fix to GHC. HsColour support still uses Cabal, and hence preprocesses the source files again. We could move this into the build system too, but there is a version dependency that would mean adding extra autoconf stuff.