[FLINK-1287] LocalizableSplitAssigner prefers splits with less degrees of freedom

The current LocalizableSplitAssigner assigns remote and local splits without priorities, i.e., each remote (local) split has the same probability of being assigned.
With this change, splits are prioritised by the number of hosts they can be locally read from. Splits with fewer options to be locally read are preferred over others that can be locally accessed from many hosts.
I think the cast is not necessary?