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!)
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
Merge pull request #5 from david-christiansen/ideslave-socket

Make --client use the correct handles
Merge pull request #1452 from hannesm/ideslave-socket

Ideslave socket