Attempt to update to ghc-7.8.2

Atm this causes a ghc panic in Compiling Chess.Move.Generator.

ghc: panic! (the 'impossible' happened)
  (GHC version 7.8.2 for i386-unknown-linux):
	RegAlloc.Liveness.computeLivenss
    SCCs aren't in reverse dependent order
    bad blockId c1AEd

seems to be similar to https://ghc.haskell.org/trac/ghc/ticket/9031.
Build fix
Changed -O2 -> -O0 until ghc is fixed.

For more info see https://ghc.haskell.org/trac/ghc/ticket/9031.
Pondering support

First stab at supporting asynchronous / abort-able search. This is a work
in progress. Working towards pondering / time control.
-O1 also works. Only -O2 is broken.
Enforcing that we cannot store empty variations in TT
Factor out abortable
Added back transPosCacheDeflate & printing currmovenumber
Letting the UCI drive pondering

The UCI protocol drivers pondering. See
[http://wbec-ridderkerk.nl/html/UCIProtocol.html]. Note that the UCI
option `name Ponder type check default true` is necessary at least with
xboard or pychess - even though the spec says otherwise.

The `go` command option parser could be more type safely defined, ie. we
could express that `infinity` is not a possible option with for instance
`wtime`. The spec is a bit vague about what's valid and what's not.