CA-95053: VM.start should check if a host has enough memory

Though it should fall back to just trying anyway in case of
failure as memory checks are notoriously hard to get right.

This patch is based on a similar one by Jerome Maloberti.

Signed-off-by: Jon Ludlam <jonathan.ludlam@eu.citrix.com>
Merge pull request #1216 from jonludlam/CA-95053-v2

CA-95053: VM.start should check if a host has enough memory