Don't require organisations for supporting pages.

Removes the organisation mixin from Edition and places it in
subclasses that actually want it.

Fixes code and tests that expect a generic Edition object to have
related organisations.
Rewrite the supporting pages mixin.

Currently used only by Policy.
Update preview button to support multiple targets.

Supporting pages will exist on multiple pages on
the front end depending on which policies it is
associated with.

This commit also provides us with a reusable
bootstrap button dropdown partial.
Show message when policy has no supporting pages
Extract PermissionsChecker mixin from Admin::BaseController
Make view and preview of supporting pages work

Also make the preview checking more secure by ensuring the
current user can see the previewed records.
Validate that supporting page has > 0 policies
Fix path used in supporting_pages#index redirect
Show related policies for supporting page in admin

This commit also introduces render_partial_if_exists, which is a small
helper method to conditionally render a partial. Previously this has
been handled by including an empty partial of the same name somewhere
in the view path.
Add image support to supporting pages.
Fix supporting page factory creations.
Fix attachment visibility for supporting pages.

Supporting pages are now Editions and so don't
need special treatment for attachments.
Put access limiting back onto Edition#organisations
Move eager publication/announcement loading to classes.
Fix fact check controller test.

Policies no longer show supporting pages for fact
checking.
Remove non-Rails code from AuthorityTestHelper
Fix validation approach for SupportingPage#related_policies
Overhaul admin/supporting_pages_controller test

Now that supporting pages are editions we are just inheriting shared
edition controller behaviour so we only need a very reduced set of
tests.
Move AlternativeFormatProvider from Policy to SupportingPage
Clean up supporting page unit tests. Lots of skips.