Refactor Publishing API presenters and workers

Some refactoring of the code that pushes things to the Publishing API:

* Put the code that decides which presenter to use into one place
* Add a generic worker for pushing content to the Publishing API, relying on the above code
* Add a data hygiene helper class for (re)publishing things to the Publishing API, which we are likely to be doing often whilst we migrate content to the content store.

The main upshot is that we no longer need to change any of the worker code when we want to push a new type of model to the content store - we can simply add a presenter for it and update the `PublishingApiPresenters.presenter_for` method.

Note that there will be a further cleanup task once this has been deployed and any existing jobs worked off - both app/workers/publishing_api_edition_worker.rb and app/workers/publishing_api_organisation_worker.rb will  become redundant and can be removed.
Don't quite understand why you're calling to_json then parsing it back to a hash. Why not just `assert_publishing_api_put_item(presenter.base_path, presenter.as_json)`?