[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.

to avoid some task block the whole scheduler. ScheduledExecutorService executes the task in its own thread pool, instead of fork a new thread for the task execution.