[SPARK-4609] Blacklist hosts rather than executors when tasks fail

Executor will restarted with a new id, so counting number of failures based on executor id will not work in this cases, this patch change it to host.

After this change, one downside may be that the task can not be launched on other executors on the same host if it failed on one executor of them. All the executors on the same host share many resources, there is not a good reason that a task can succeed in other executors on the same host. So this will not be a problem.
I think we can not change the name of config variable. How about just call it `TASK_BLACKLIST_TIMEOUT` ?