Refactored PublishingEndPointAPI and related classes to be more consistent and developer friendly.  commiting in preparation for merging of changes from master