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.
When we have established a connection to a peer, we start to refer to it by its PeerName (e.g. MAC address), which we did not know up to then.  So the process of removing connections does not work - it is still in the set of failedConnections under the UnknownPeerName ID.  

Removing it immediately was an attempt to avoid later trying to find it by its IP address, because IP addresses are not expected to be unique across the whole network.