[SPARK-4609] counting failures on host instead of executor

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.
hm one thing that's ugly here is we should ideally change this to HOST_TASK_BLACKLIST_TIMEOUT -- but then the name of the config variable is inconsistent...any ideas for what makes most sense here?