core: refactoring in SchedulingManager

SchedulingManager#schedule used have too many responsibilities - input
validation, best host selection, update pending resources, and cluster
locks handling.

This patch extract the best host selection to separate method to remove
one of the responsibilities mentioned above and simplify the code.

In addition, other minor refactoring was made in this class.

Change-Id: I57b8e4751b4da329658f4b8e1ae2366b1147a137
Signed-off-by: Arik Hadas <ahadas@redhat.com>