Simon PJ work in progress on re-architecting flatten-skolems

The goal is to fix the wanted/wanted interaction in Trac #9318.
I'm not sure that this is anything like right yet, so don't take
it too seriously.  Just wanting to put it in Git.
More work in progress
Comment wibble
Add flattening notes
More wip on flatten-skolems
More wip on flatten-skolems
More progress
More progress
Merge branch 'master' into wip/new-flatten-skolems-Aug14

Conflicts:
	compiler/typecheck/Inst.lhs
	compiler/typecheck/TcMType.lhs
	compiler/typecheck/TcRnTypes.lhs
	compiler/typecheck/TcSimplify.lhs
	compiler/typecheck/TcUnify.lhs
	testsuite/tests/indexed-types/should_compile/T3017.stderr
	testsuite/tests/indexed-types/should_fail/T7729.stderr
	testsuite/tests/indexed-types/should_fail/T8227.stderr
	testsuite/tests/indexed-types/should_fail/T8518.stderr
More flatten-skolem progress
Merge branch 'wip/new-flatten-skolems-Aug14' of https://git.haskell.org/ghc into wip/new-flatten-skolems-Aug14

Conflicts:
	testsuite/tests/indexed-types/should_fail/T7729a.hs
More progress on flatten-skolems
Wibbles
Better printing for TcTyVars in dump style
Another traceTc debug trace
More flatten-skolem progress
Print traceTc stuff in dump-style
Error message wibbles
More flatten-skolem progress
Better printing of dump messages