Allow static to accept any closed expression.

Expressions are floated to top-level bindings with fresh names.
Fix T4437 so it succeeds with the StaticValues extension.
Implement tests of the StaticValues extension.
Implement tests for static values when floating expressions.
Implement test for loading symbols produced by the static form.
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.