Service port validation

AFAICT, ValidateService doesn't check that a port is specified. What happens when no port is specified?

I also can't find anywhere where we check that 2 services don't ask for the same port.

Additionally, host ports may conflict with service ports. It would be useful to report such conflicts and to prevent the creation of services that conflict with host ports and vice versa.