Update Cabal submodule to tip of v1.20 branch

This corresponds to the RC of the soon-to-be Cabal 1.20 release

One noteworthy change is the removal of the `--with-ranlib` flag
requiring a small adaptation in the GHC build system.

Moreover two new licences were added, MPL and BSD2.

Due to https://github.com/haskell/cabal/issues/1622 Cabal-1.20 now
allows to strip libraries as well, this doesn't work well with
`ghc-cabal copy` being fed a `":"` strip-command argument which was
simply ignored in the past. The current code tries to retain this
semantics as backward compat. However, this needs more investigation as
I'm not sure if/why the `test_bindist` step doesn't want the libraries
to be stripped on installation.

Signed-off-by: Herbert Valerio Riedel <hvr@gnu.org>
Have the parser understand the static keyword when using the StaticValues extension.
Implement renamer checks to verify that static is only given top-level value bindings.
Implement typechecking for the static form.

This patch requires an update to the base package so it includes the
module GHC.StaticRef.

The StaticRef type is made wired-in so the typechecker can use it
regardless of whether it is in scope.
Implement desugaring for the StaticValues extension.

    static f
==>
    StaticRef $
	  GlobalName "package id of f"
	             "package-installed suffix"
	             "module of f"
				 "name of f"
Make sure identifiers given to static are exported.
Add HsStatic case to coverage code.
Allow static to accept any closed expression.

Expressions are floated to top-level bindings with fresh names.
Shorten fresh names introduced by the static form.
Put quantifiers outside the index type of StaticRef.

Previously,

    static id :: StaticRef (forall a. a -> a)

Now,

    static id :: forall a. StaticRef (a -> a)

This allows expressions as the following

    staticLabel (static id) `staticApply` staticLabel (static "s")
      where
        staticLabel :: StaticRef a -> Static a
        staticApply :: Static (a -> b) -> Static a -> Static b
Implement template haskell support for StaticValues.
Implement -ddump-static-binds.

It shows top-level bindings produced for static values.
Write user manual section for the StaticValues extension.
Fix T4437 so it succeeds with the StaticValues extension.
Implement tests of the StaticValues extension.