Treat '_' as a meta variable
Add extra constraints wildcard to TypeSig and TcSigInfo
Update README & add demo
Add named wildcards (syntax and renamer)
Desugar named wildcards to meta vars
Fix warnings
Generalise over open wildcards

Wildcards that aren't unified with closed types should be generalised
over, e.g.

    bar :: _ -> _
    bar _ = True

The second wildcard will unify with the `Bool`, but the first one should
be quantified over, leading to the type `forall a. a -> Bool`.

Notes:
* Bindings with a partial type signature are handled by
  `tcPolyCheckInfer` (a better name should be chosen), which is a
  combination of `tcPolyCheck` (for bindings with a type signature) and
  `tcPolyInfer` (for bindings without a type signature). This function
  will be cleaned up later.
* The unification variables (uvars) created during the wildcard
  desugaring should be touchable. To this end, we store these uvars in
  the type checking environment to be used later.
* To combine the aforementioned wildcard uvars with the regular uvars,
  we introduce a new constructor for `Untouchables`, `RangeDisj` which
  combines two ranges.
* To discern wildcard uvars from regular uvars, we add a Bool parameter
  to the `TauTv` constructor of `MetaInfo` (stored in a uvar).
Fix recursive binds with partial type signatures

Test case:

orr :: a -> a -> a
orr = undefined

-- g was incorrectly generalised to `forall tw. tw` instead of just `Bool`
g :: _
g = f `orr` True

f :: _
f = g
Allow wildcards to unify with type variables

Example:

    eqq :: Eq b => b -> _ -> Bool
    eqq x y = x == y

The wildcard now correctly unifies with the type variable `b`.
Fix the broken generalisation
Meaningful type variable names for named wildcards

When generating meta type variables for named wildcards, keep their names
intact. Also, change their names from _a to tw_a when generalising.
Use startsWithUnderscore to detect named wildcards
Fix broken generalisation after rebasing
Remove some ad hoc logic for the generalisation of wildcards. Instead, make some modifications to generalise wildcards through the same channels as when a type signature is absent. Specifically,

* make a type signature hold a list of bound wildcards
* make sure meta-variables from wildcards are not considered global type variables in the type checker, when adding the type signatures to the environment
* modify the generalisation logic to consider the metavariables in the type signature for generalisation.
Fix renaming of partial type signatures: named wildcards are in scope in the code below...
Code style
Fix tests tc163 and T4437

Test tc163 failed because `isWildcardVar` was called on a `TyVar` other than a
`TcTyVar`, which caused a panic. Fix: check if the `TyVar` is a `TcTyVar`.

Test T4437 failed because the `NamedWildcards` extension was not expected to
be present. Fix: add `NamedWildcards` to the list of expected extensions.
Basic tests for partial type signatures

Current unexpected failures:
* EqualityConstraint
* Every
* EveryNamed (equivalent to Every, but uses named wildcards)
Define helpers `isPartialSig` and `noCompleteSig`
Fix failing tests Every and EveryNamed