Publish draft now uses service, removed service methods with multiple return types.

Added service doc blocks. Got rid of methods returning null instead of exceptions.
Made all related controllers catch the new exceptions.