Fix up functional tests in light of enforce_permissions! changes

Mostly it's either stubbing out the permissions call, or using a gds_editor (who can mostly do everything).

Had to move the redirect_to_controller_for_type filter back to the bottom of the filter stack on editions controller so that it happens after we enforce permissions.
Use subject.edition_organisations instead of subject.organisations

This is so that when we check unsaved instances we can still pick up their organisations for checking access_limiting stuff.
Replace debug puts statements with logger.warn
Use Enforcer in the xxx_by? (publishable_by? &c) methods on Edition

We may find that these bits of those methods are now redundant as they will be protected at the controller level by the enforce_permissions! guard.  However, maybe they are still necessary.  Also, fix up tests that no longer behaved because of this change.
Fix features in light of permissions

Mostly by escalating the permissions of the user acting in the tests.