Improve initial connection and retries

This fixes #23 by having main re-use the code for failed connections, and #26 by having ConnectionMaker keep track of currently-in-flight connection attempts.  Also we use that info to improve the status slightly.
I don't think anything ever gets removed from foundAt, so what is the point of this line? Also, aren't you missing a 'continue'?