Rework Publishing API scheduling code

This is mainly to bring the code in line with how unscheduling works by using
separate workers for publishing the publish intent and the "coming_soon" item
for an edition when they are scheduled. This simplifies the code and decouples
the two concerns, making it easier to change things in future (i.e. once 404
caching responses are honored by the stack, we can more easily remove the code
that publishes the "coming_soon" items without affecting the code responsible
for pushing the publish intents). The workers and the presenter are now much
simpler and are given just enough information they need to speak to the
Publishing API without having to have any intimate knowledge of the underlying
active record models.