[SCHED] Reduce starvation of some VCPUs in case of cpu limits
Change logic of choosing best_vcpu to schedule to.
There are two potential problems:
a) if a vcpu is hot, and last used physical CPU of this vcpu is equal to
smp_processor_id() it will be always chosen. This is not a good
decision, because there is no guarantee, that _all_ physical CPU's must
take vcpu's from a vsched. For example, if cpulimit for a vsched is
small, this vsched can be run only on one physical CPU forever.
b) Also now newer 'cold' vcpu's are chosen first,
because we scan active_list in direct way,
i.e. from older vcpus to newer vcpus, and a newer one will be chosen finally.
In this case old vcpu's can starve for a long time