Correct `dependent: :destroy` for CIPs

www.agileplannerapp.com/boards/173808/cards/8853

there's a `dependent: destroy` on organisations to destroy associated
corporate information pages when the organisation is deleted. in spite
of that few orphaned CIPs exist: 336462, 336498, 363483.

there are changes in 2 places to fix this issue:

1. `dependent: :destroy` on `corporate_information_pages` association
   only destroys the record in the join table and not the corporate
   information page edition. so the fix is to have an explicit
   `before_destroy` to clean corporate information editions
   and documents.

2. callbacks are invoked in the order in which they're declared.
   if the `before_destroy` to destroy corporate information gets
   registered before the `:edition_organisation, dependent: :destroy`
   this will work. else, when the callback tries to destroy related
   corporate information pages it won't be able to fetch the related
   corporate information editions because the linking record is gone.
Adding migration to change making-schools-and-colleges-more-accountable slug

The migration changes the slug of the policy document, removes the old documents from search, adds the new paths to search and sets a redirect on the main policy slug.
Update policy data migration to use prefix route

Use a prefix redirect for the policy change. This will then match all
the supporting pages and redirect them.

Also remove the 'for' from the search index calls. As far as I can tell
the search index gets set based on the object anyway. It was also
causing the migration to fail for me locally.
Show unpublishing information on drafts

www.agileplannerapp.com/boards/173808/cards/8902

content designers need to know when a draft is a
fresh draft as opposed to a draft that resulted
from an unpublishing.

this is a temporary fix whilst we create a state
called 'unpublished' to represent such editions.
Merge pull request #1897 from alphagov/remove-orphaned-corporate-information-pages

Correct `dependent: :destroy` for CIPs
Add missing colon after 'Location' key.
Merge pull request #1904 from alphagov/change_schools_colleges_slug

Change schools colleges policy slug
Remove legacy Unpublishing reasons

These reasons are no longer selectable in the user interface and all existing
data has been migrated to use one of the other unpublishing reasons, making this
code redundant.
Merge pull request #1910 from alphagov/remove-deprecated-unpublishing-reasons

Remove legacy Unpublishing reasons
Add unpublishing presenter.
Use Unpublishing format for unpublished editions.
Send unpublishing on unpublish action.
Data migration to push all unpublished editions.

Modifies PublishingApiRepublisher not to skip non-published editions if
they have an unpublishing.
Move publishable? logic to PublishingApi.
Add schema for unpublishing, validate in test.
Add redirect presenter.

Includes JSON schema validation.
Fixes to unpublishing presenter

Explanation renders as govspeak, and empty alternative_url should be
empty string not nil.
Remove unnecessary fields from presenters/schemas.
Custom exception for unpublishable editions.
Rename Redirect presenter to EditionRedirect.