Fixes #4045: Repository name and label validations properly handled.

Repository name and label validation were being handled improperly
and without the same format as other model validations. This creates
and proper active record validators for each and provides a message
indicating to the user the scope of the validation (i.e. Product).
Wouldn't this prevent you from publishing a repo in two content views?   I think you would need exists_for_environment?(environment, content_view)   and factor both into the query