Ensure erasure happens under 'force'

Fixes #1367
I'm not yet convinced there isn't still potentially a similar problem
under other forms of ProjCase, but since these only arise in unusual
circumstances at the moment there isn't a problem *yet*!
windows executables should end with .exe
Highlight prover output for ideslave
Update CHANGELOG for unbound implicits
Highlight differing implicits in errors

But only if there are otherwise no visible differences in the error
Merge pull request #1368 from Heather/clean

windows executables should end with .exe
Merge pull request #1369 from david-christiansen/prover-output-color

Highlight prover output for ideslave
Make prover better at IDESlave protocol

Instead of returning strings that comprise results, return actions that
complete them. This makes handling which requests are completed much easier.
Keep type arguments of = when unelaborating

This allows more informative error messages when the mismatch is in the
type arguments to =.
Support multiple let bindings

This sort of thing now works:

  test : Nat -> Nat
  test n = let foo = n
               S k = plus foo foo
              in k

The bindings must be aligned, and the keyword 'in' (indented however you
like within the 'test' block) terminates the list.

Pattern match alternatives are also supported, for quickly catching
failures:

  test2 : Nat -> Nat
  test2 n = let foo = n
                S k = plus foo foo
                    | Z => 42
              in k

Fixes #1362
Remove commented out code
Fix parameter expansion in PEq case
Fix parameter propagation on CAFs

Specifically, only propagate implicit parameters which are missing.
Fixes #1370
Allow :doc in prover

This supports looking up documentation while proving. It's really most
useful inside of an IDE.
Merge pull request #1371 from david-christiansen/prover-output-color

Prover output color