Remove cruft from Admin::OrganisationsController

A lot of unnecessary code that could be hacked off.
Add missing scenario for creating an organisation
Stage one reorganisation of controller tests

Consolidate some of the tests and get rid of those view tests that add
little value.
More tweaks to organisation features
Make MainstreamLink polymorphic

This makes mores sense than using separate join models and
functionally behaves the same as before. The next step will be to
adjust the UI to follow the same pattern as links on promotional
feature items, which will simplify the controller code. Note also that
orphaned links are removed by the data migration.
Move ordering of mainstream links to the association

We always want them in this order so we might as well make it explicit
in the association. This allows us to drop the functional tests that
verify they are listed in the correct order.
Refactor JS for nested attributes

This consolidates two methods for managing nested attributes that
we currently employ. We now show "Remove" buttons to delete existing
nested things, which is much more user-friendly than the previous
method of having to clear all the fields. It also allows us to
simplify the controller code by reducing the amount of param-massaging
required.
Mainstream links use new nested attributes JS
Allow all organisations to be parents

It's no longer just departments that can have sub-organisations.
Clone with event handles
Don't test basic mass-assignment functionality

Neither of these tests exercise anything unique in the controller code.
Merge pull request #605 from alphagov/sub-organisations-for-all

Sub organisations for al

https://www.pivotaltracker.com/story/show/48860985