Replace observers with service object subscribers

Note that this code changes the behaviour slightly. Prior to this,
there was a bug that meant that supporting pages were lost from the
index if the document was re-editioned (https://www.pivotaltracker.com/story/show/59902334).
Now, all the behaviour for updating the index when an edition is
published or unpublished is in one place and the supporting pages of
the previous edition are removed before the current ones are indexed.

I've also removed the evil `rescue => e` as it's now redundant -
search indexing happens in a background job so we don't have to worry
about rummager disappearing during the request cycle.