Add port conflict detection to the service validation logic.

Part of #974 
I think it should be done in the registry. I don't think putting it in the validation stuff is a net win, I think it will give people a false sense of security and set a bad precedent. I'm OK if it's still racy while placed in the registry, because that can theoretically be fixed. I think it can never be made race free while located in the validation code; it's just the wrong place for checking cluster-wide constraints.