Rework the MPI connect/accept code
I'm puzzled by this code working. It does all the right things, but it was calling PML->add_procs with zero new procs, ALWAYS (the ilist was empty by the time we got to the add_procs call). But somehow it still worked, which seems to indicate that some of the PML are more tolerant to not having procs added correctly. But I'm sure that's not the case for all PML, especially for those requiring symmetric add_procs.
Thus, at this point this PR is a bandaid, trying to do the right thing, at least partially. I think the correct solution is to remove the ilist and always use the mlist (the list of all, local and remote, processes) to do the add_procs, even if we are registering again already known processes. This is the only way to have a symmetric add_proc everywhere.