Parameterise protocol/host in redirect check

We should verify that the URL is appropriate for the current
environment, e.g. development, test or production.
Failing feature for consolidating edition

New behaviour where consolidated editions are automatically redirected
to the alternative url
Add new unpublishing reasons and mark legacy ones

We have to keep the existing reasons around for the unpublishings
already in the database. This is the simplest way to roll out this
feature. If we need to migrate these old reasons to the new ones, we
can do that as a separate step
Add validations for consolidated unpublishing

We always want an alternative URL when the edition is unpublished
because it is being consolidated. We also always want to redirect if
that is the reason.
Update unpublishing form with new reasons
Failing feature for archiving documents
Add "archived" state to Edition
Update EditionUnpublisher to archive editions

Depending on the unpublishing reason, the edition is either archived
or reverted to draft.
Make unpublishing remark dynamic
We don't "preview" archived documents
Update unpublish form to match visual mockup

Still the fancy-JS to be added to make the form dynamic based on the
unpublishing reason.
Update front-end to include archive info when present.
Include "archived" as option in admin filter
Make unpublish form more idiomatic
Update admin UI to match mockup

Use some JS to selectively show/hide form fields, based on the
currently selected reason for unpublishing.
Show appropriate notice when archiving
Tweak frontend CSS for archive notice

Some frontend eyes to check this over would be appreciated.
Prepend "Archived:" to titles when appropriate

This is so it's clear in external search results that these pages
have been marked as archived, as-per the pivotal story.
Separate service object for archiving editions

It felt wrong that there was a single service object for archiving
and unpublishing so I've split them out (note that archived editions
will remain in the search index for now, as the search status of
archived editions is being dealt with in a separate story). In an
ideal world, we'd also have a separate controller action for each, but
because of the way the UI works, this would be quite tricky, so
leaving it as a single controller action for now.
Reword Unpublish button to "Archive or unpublish"