Make proof arguments to list functions implicit

This makes code much cleaner.  Fixes #1318.
Don't show irrelevant MNs in prover

Previously, proof steps like applyTactic would introduce MNs to the
proof state, with names like {scriptVar231}. This change hides those, as
the user cannot type them anyway.

If they are used in a later assumption, then they will be shown anyway.
Merge pull request #1450 from david-christiansen/dont-show-mn-in-proof

Don't show irrelevant MNs in prover
utility to listen on any port, returning the port number and the socket
provide a new option, --ideslave-socket, for an ideslave listening on a socket
provide a Handle for IdeSlave, used to read from and write to (instead of hardcoded stdin/stdout)
also send protocol-version message when the client connects
also accept a single client connection when --ideslave-socket is provided (I don't see any reason to have multiple clients at all!)
Use a zipper-like proof state

Proof state now contains the term in focus, its environment, and a path
through the complete term to reach that sub-term. As a result, large
proof terms are now checked more quickly

Cleaned up a couple of other things on the way...
Merge branch 'master' of github.com:idris-lang/Idris-dev
Search subterm for goal first
Save some allocations in updateSolved

Traverse the term to see if any holes need updated. The extra traversal
appears to be worth it, to save allocations when no updates are needed.
Remove all the handle arguments

Now, the output mode specifier is the single canonical source for what
handle to output on.
Merge pull request #2 from david-christiansen/ideslave-socket

Remove all the handle arguments
load input properly, as requested by @Melvar
move getNChar and getLen to IdeSlave
read from handle rather than stdin
Send prover errors back with spans instead of ANSI

This requires an update to clients to allow an optional span list on
prover errors.
Merge pull request #3 from david-christiansen/ideslave-socket

Send prover errors back with spans instead of ANSI
Stop encoding prover messages as output
Merge pull request #4 from david-christiansen/ideslave-socket

Stop encoding prover messages as output
Make --client use the correct handles