Extract scheduled publishing to a worker class

The work of publishing a scheduled edition has been pulled out to a
separate class that intentionally mirrors the API used by background
job systems like sidekiq and resque. This is so that if/when we move
to a proper job queue system for handling scheduled publishings, we
can simply queue one of these workers at the point the edition is
scheduled to be published and leave the job system to handle the
scheduling of the job and retries in the event of failure.
Remove cruft

It doesn't matter what publish_atomically_as returns; creating
the robot if it doesn't exist shouldn't happen in the model;
acting_as method is no longer used.