Added Publishing Workflow operations as well as fixed partial metadata updates (when not publishing)

This commit does a bunch of refactoring to create a class to do Publishing Workflow, as well as the traditional
append and replace operations.