Supporting pages become editions

https://www.pivotaltracker.com/story/show/57310924

This pull request includes the bulk of the work to make supporting pages editions with passing tests.  We're aware the current tests aren't passing, but these are small regressions introduced by the merge.  Please go ahead with a review.

The following tasks remain before this can be shipped:
- [x] Add search indexing for supporting pages and ensure the front-end looks sensible
- [x] Add cleanup migration for old `supporting_pages` table
- [x] Populate a redirection table with a list of changed supporting page slugs as part of the migration
- [x] Fix miscellaneous issues raised by editors
- [x] Allow both old- and new-style supporting page admin links in markdown, and translate them correctly to public links. This will allow us to defer the need to rewrite document bodies to correct these links.
- [x] Make the data migration run in a database schema migration so that it will complete before the app server restarts. Optimise for shortest time from transaction start to end.

The following tasks are part of the feature (possibly as spin off stories) but should not block deploy:
- Update change notes & alerts on related policies when publishing supporting pages
- Exposing which policies a supporting page supports as metadata on search

There's also a whole lot of tech debt which we're not going to tackle here:
- Edition mixins don't reliably include other mixins they depend on, e.g. `can_apply_to_local..` relies on `related_policies` but does not include it, and the attachable mixin relies on the alternative format provider.
- Some Edition mixins provide `#can_be_something?` methods whereas others check concrete descendants to provide a list of edition types.  This should be one or the other or perhaps neither.
- Editions are used in places where documents would be more appropriate, including relationships between different documents.  The word "document" is also used in many places when actually referring to editions, see https://github.com/alphagov/whitehall/blob/master/app/controllers/documents_controller.rb#L46-L52 which always returns an edition.
- `Edition::Organisations` is mixed into `Speech` and `WorldLocationNewsArticle` but is not used.  This can now be extracted based on the work contained in this PR.
- The `AuthorityTestHelper` is shit.  Let's remove it.
- Edition mixins should be unit tested independently with test-specific subclasses instead of relying on either generic editions or other unrelated concrete subtypes.
- Attachment behaviour should only be tested through the attachment controller tests, not the controller tests for the specific attachables, e.g. publication and consultations.