Yet more refactoring in overlapping type-family instances

This patch mainly introduces TcValidity.checkConsistendFamInst,
and uses it when typechecking type-family instances, *including*
default instances.

I find I can't remember why I began this particular saga, but
it's a modest improvement I think.
Merge branch 'master' of http://darcs.haskell.org/ghc

Conflicts:
	compiler/typecheck/TcInstDcls.lhs
A bit more tidying up

This is really just a completion of bcbfdd03.
Fix Trac #7681.

Removed checks for empty lists for case expressions and lambda-case.
If -XEmptyCase is not enabled, compilation still fails (appropriately)
in the renamer.

Had to remove dead code from TrieMap to pass the validator.
Added RTS hooks for the timer manager.
setNumCapabilities calls GHC.Conc.IO.ioManagerCapabilitiesChanged before returning.

This enables the IO manager to change the number of IO loops it uses (usually one per capability).
Changed ioManagerCapabilitiesChanged to take no arguments.

ioManagerCapabilitiesChanged now queries getNumCapabilities for the current number of enabled capabilities.
Adding missing symbol in rts/package.conf.in.
Merge the new parallel I/O manager
Implement poly-kinded Typeable

This patch makes the Data.Typeable.Typeable class work with arguments of any
kind. In particular, this removes the Typeable1..7 class hierarchy, greatly
simplyfing the whole Typeable story. Also added is the AutoDeriveTypeable
language extension, which will automatically derive Typeable for all types and
classes declared in that module. Since there is now no good reason to give
handwritten instances of the Typeable class, those are ignored (for backwards
compatibility), and a warning is emitted.

The old, kind-* Typeable class is now called OldTypeable, and lives in the
Data.OldTypeable module. It is deprecated, and should be removed in some future
version of GHC.
Use a separate user's guide section for -XAutoDeriveTypeable
Typeable changes to time while waiting for the upstream to update
Typeable changes to vector while waiting for the upstream to update
Typeable changes to containers while waiting for the upstream to update
Merge branch 'master' of http://darcs.haskell.org/ghc
Gentoo calls 'w64' a mingw flavour with mingw-w64 runtime.

Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
Convert README to markdown.

Patch from morabbin!
merged master