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.

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.