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>
Can we use `List.for_all` for this:

```
val for_all : ('a -> bool) -> 'a list -> bool
for_all p [a1; ...; an] checks if all elements of the list satisfy the predicate p. That is, it returns (p a1) && (p a2) && ... && (p an).
```