Refactor building of Publishing API presenters

Moves the knowledge for presenting a given model into one place.
Replace bespoke workers with a generic one

Now we have a way to instantiate the correct presenter for a given model
instance, we can use a generic Publishing API worker to push any model we like
to the Publishing API, assuming a presenter exists.

Note that the existing workers have not been removed yet. They can be removed in
a later pull request once any existing queued jobs have been worked off.
Data hygiene class for (re)publishing instances

Convenience class for pushing a bunch of models to the Publishing API. We're
likely to be doing this a lot whilst we're moving content to the content store
and evolving the data that we send.
Ensure class namespacing is honored
Don't misuse Struct

Turns out that subclassing Struct causes issues with Rails class reloading.
Besides which, it also appears to be a bit of an anti-pattern, as outlined here:
http://thepugautomatic.com/2013/08/struct-inheritance-is-overused/.
Merge pull request #1854 from alphagov/refactor-publishing-api-presenters

Refactor Publishing API presenters and workers