Support memory ballooning

Support memory ballooning

Some developers (like me), may run multiple Linux VMs for quite a long time but the host memory is not unlimited, especially on current M1 devices. By supporting memory ballooning we can reduce the memory consumption significantly when the VM is not running memory-hungry tasks, allows as keep them running in the background instead of shut them down.