Fix an issue in ConnectionManager where sendMessage may create too many unnecessary connections

In ConnectionManager, sendMessage creates a new SendingConnection when connection host key is not found in connectionsById.  But there might be too many unnecessary connections created before connectionsById is updated in the connection-manager-thread.run. In out test ConnectionMangerTest fails on "connection reset by peer" or "timeout" when there're too many message sending threads. This patch reuse the connections and fix this issue.   Reported in issue tracker as SPARK-647 https://spark-project.atlassian.net/browse/SPARK-647