Rescue exceptions during scheduled publishing

Another temporary fix to ensure that scheduled publishing does not
fail. We rescue exceptions raised by listeners but make sure to log
them with our exception logging in production. Exceptions are still
raised in non-production environments so stuff doesn't accidentally
fall through the cracks.

This is still far from ideal because a listener failing with an
exception will result in all subsequent listeners failing to be
notified. We should do two things:

1. Replace the existing fanout notifier with one that will gracefully
handle individual listeners falling over.
2 Update listeners to handle their own common errors better.