core: refactoring VdsSelector API

Host selection should become stateless, therefore moving failed host
list out of this class (vdsBlackList), and pass it as a parameter.
In addition, each vdsSelector call should supply a list of hosts
that the selector should 'work' on.

new VdsSelector API:
// for Validation purposes
canFindVdsToRunOn(List<VDS> vdsList,
            List<Guid> vdsBlackList,
            List<String> messages,
            boolean isMigrate)
//  for selecting a host to run on
Guid getVdsToRunOn(List<VDS> vdsList,
            List<Guid> vdsBlackList,
            boolean isMigrate)

Gerrit-cntr: 1
Change-Id: I6d936e1b96628e426e944d77730e3ca08a1357ee
Signed-off-by: Gilad Chaplik <gchaplik@redhat.com>