Cleanup
Fix racy connection handshake

The first fix is to send the ACK to the peer before it is added
to the list of connected nodes. This way, any command
(CMD_NODE_GET_NODE_DATA for instance) sent to this peer (this peer
can be returned via getNodes()) is executed after the
ACK, so no racy disconnect can happen anymore.

The second fix is to not connect to a peer without using the TRY_AGAIN
semantics. Before that, it was just relying on isReachable() once to make
this decision to connect, but this races with simulateneous connect
handling from the receiver thread.