Add some validation for externalized service ports.

Sorry, I should have caught this earlier.

This shouldn't return AlreadyExists. That needs to be reserved for an object already existing with the same name. 

We need a new type of Conflict error, like ResourceAlreadyInUse.