CA-144658:squeezed is a bootstorm bottleneck when there are many xenopsd worker threads

In this fix, the problem is in bootstorm, squeezer will be a bottleneck here. For the test environment configure here, start VM don't need squeezer to work since there is lot of memory free in host.
So as a workaround here, we don't need to call squeezer if there are lot of free memory and also all other VMs' memory target has been met.

This fix add a conditional check in change_host_free_memory, which is let "finished" to be true if host memory requirement is smaller than free memory and all VMs meet their targets.

Signed-off-by: Cheng Zhang <cheng.zhang@citrix.com>
Hi @simonjbeaumont 
     This is because only balloon-able domain need to do such check. You can refer to https://github.com/cheng--zhang/xen-api/blob/CA-144658/ocaml/xenops/squeeze.ml#L332.