Break up RootController#prepare_publication_and_environment

This new method was quickly soaking up a lot of complexity. We can at
least break that into a few smaller methods.

Also added note for consideration about whether we can deal with 'done'
slugs outside the controller.