[svn-r6578] For checkpointing code, use PMI_PORT instead of PMI_FD.
With BLCR, since all the processes are restarted by the BLCR library, and not by Hydra directly, we cannot provide a new PMI_FD for the MPI processes to use. So, we instead use the PMI_PORT mechanism and ask the MPI processes to connect back. This commit also contains a cleanup of the socket fd maintenance within the code to distinguish between uninitialized sockets and closed sockets. While this part is independent, parts of it overlapped with getting the combined PMI_PORT/PMI_FD code working.