First pass at publish framework for ostree repos

I agree, The coded exceptions provide much more detail and useful information for the end user but the plugin API requires the boolean, error.  Both patterns are currently supported so the raises flag is here to remind whoever comes next to use the PulpCodedValidationException for errors