Comments only
Add OverloadedLists, allowing list syntax to be overloaded

This work was all done by
   Achim Krause <achim.t.krause@gmail.com>
   George Giorgidze <giorgidze@gmail.com>
   Weijers Jeroen <jeroen.weijers@uni-tuebingen.de>

It allows list syntax, such as [a,b], [a..b] and so on, to be
overloaded so that it works for a variety of types.

The design is described here:
    http://hackage.haskell.org/trac/ghc/wiki/OverloadedLists

Eg. you can use it for maps, so that
        [(1,"foo"), (4,"bar")] :: Map Int String

The main changes
 * The ExplicitList constructor of HsExpr gets witness field
 * Ditto ArithSeq constructor
 * Ditto the ListPat constructor of HsPat

Everything else flows from this.
Follow changes to HsPat
Merge branch 'master' of darcs.haskell.org:/home/darcs/ghc
isAlive needs to look through BLACKHOLE indirections

This has been breaking StableNames and possibly weak pointers in some
cases.
removeIndirections: look through BLACKHOLE indirections

This has been breaking StableNames for quite a while.
Better pretty-printing for HsType, fixes Trac #7645
Better pretty-printing for Type

Now a type like
   F (***)
will come out looking like that, whereas before
it came out as
   F ***
Merge branch 'master' of http://darcs.haskell.org/ghc
Merge branch 'master' of darcs.haskell.org:/home/darcs/ghc
Fix issues with finding llvm tools again (#7661).

Patch modified from one by Karel Gardas <karel.gardas@centrum.cz>.
Another go at tidying VectInfo

* Test: dph/modules/ExportList
Improve documentation of overloaded lists
Allow different customizations per cross target
by obtaining GlobalCrossCompilePrefix from mk/config.mk and
using that to include mk/$(GlobalCrossCompilePrefix)build.mk
instead of mk/build.mk when present.

Note: GlobalCrossCompilePrefix is basically the same
      as CrossCompilePrefix, but does not depend on $(phase).
Merge branch 'master' of darcs.haskell.org:/home/darcs/ghc
Don't push to submodules on "./sync-all push"

A standard git push doesn't make sense for them
Check sub-modules are OK before pushing
Make :kind in GHCi do kind generalisation, always (Trac #7688)

See Note [Kind-generalise in tcRnType] in TcRnDriver, and
the notes in Trac #7688
Look through type synonyms when deciding if something is a type literal.

This is needed to make things like this work:

type N = 9
myValue = fromSing (sing :: Sing N)

If we don't look trough the synonym, we get an error that `SingI N` can't
be solved.
Squash some typos