Refactor republish documents script and add tests

* Rerender => Republish
* Extract dependency injection to the script level, removing the need to
  inject the wiring into the DocumentRepublisher.
* Rewrite cuke to add a test around the DocumentRepublisher.
* Rewrite seed_cases method in the tests to use the apps service layer
  rather than interacting with the models directly.
* Add method to panopticon helpers to clear the received messages s.t.
  we can ensure a republish happened rather than risk picking up the
  messages from doc creation.
I think the original, `number_of_cases.times`, reads betters than `(1..number_of_cases)`