Ensure that isStrictDmd is False for Absent (fixes Trac #7737)

The demand <HyperStr, Absent> for a let-bound value is bit
strange; it means that the context will diverge, but this
argument isn't used. We don't want to use call-by-value here,
even though it's semantically sound if all bottoms mean
the same.

The fix is easy; just make "isStrictDmd" a bit more perspicuous.
See Note [Strict demands] in Demand.lhs
Make AutoDeriveTypeable imply DeriveDataTypeable
Properly instantiate the kind of the tycon when deriving Typeable (FIX #7704)
Do not generate duplicate instances with AutoDeriveTypeable
Merge branch 'master' of http://darcs.haskell.org/ghc
Detabify StgCmmMonad
Detabify StgCmmEnv
Remove cg_tag from CgIdInfo
Remove unused functions cmmConstrTag, cmmGetTag

Patch offered by Boris Sukholitko <boriss@gmail.com>
Trac #7757
Fix pretty printing of human-readable integers (#7750)
A couple more small refactorings
Split the Hsc phase into two subphases

The goal is that the second subphase will be run twice when using
-dynamic-too
Change how -dynamic-too works

We now run the tail of the pipeline twice, rather than trying to
do both ways in lockstep.
Add some extra sanity checking to the (l)hs->o rules
Fix -dynamic-too: Outputt to the dyn file when output_spec is SpecificFile
Remove a now-redundant hack
Re-enable a flag-consistency check

I'm not sure why it caused problems before, but it's fine now.
Simplify away some old -dynamic-too stuff from the previous approach
Don't pass -dynamic-too to GHC when compiling C files
Remove warning-suppression (not needed)