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.
you don't need `attempting`. Just use the values in the `foundAt` map as the indicator; they are currently unused, i.e. always set to `true`.