Invalid domid

This branch builds on top-of the custom-init branch.

Currently a domain ID is considered invalid when id == 0. When performing dom0 disaggregation id 0 is a valid a target for a secondary control domain and therefore defining VMI_INVALID_DOMID as ~0 is required. ~0 is consistent with libxl and how they define an invalid domid.