SPARK-1937: fix issue with task locality

Don't check executor/host availability when creating a TaskSetManager. Because the executors may haven't been registered when the TaskSetManager is created, in which case all tasks will be considered "has no preferred locations", and thus losing data locality in later scheduling.
Back at desktop, so can elaborate better.
The issue is, with relaxed constraint for the executor, some task might get scheduled to it - which would have been better scheduled at some other executor.

Simple scenario extending my earlier example, suppose there is only one task t1 left and two executors become available.
Suppose for exec1 it is RACK_LOCAL while for exec2 it is NODE_LOCAL

We start with PROCESS_LOCAL as maxLocality - and suppose enough time had elapsed so allowedLocality == RACK_LOCAL or ANY.

In this case, if resourceOffer is called on exec1 first, we get RACK_LOCAL schedule
If resourceOffer was called on exec2 first, we get NODE_LOCAL schedule.

The reason for that if condition was exactly to prevent this. I am actually surprised I did not have any testcase to catch this ...