[SPARK-4342] [Core]connection ack timeout improvement, replace Timer with ScheudledExecutor...

* replace java.util.Timer with ScheduledExectorService
* avoid reference to the whole message, use message id only.

> corePoolSize the number of threads to keep in the pool, even if they are idle
Here I think 1 is enough.