SpecialistSector model and migration

It will be used to tag editions to specialist sectors
Add cuke for specialist sector tagging
Add SpecialistSector.options_for_select method

Fetches the list of specialist sectors from the content api and builds
it into a structure usable as a list of grouped options by the Rails
select helper.
Show specialist sectors select on edition form
Save specialist sector tags to editions
Rename mainstream_content_api to content_api

It better reflects what it is and what it's for.
Use Whitehall.content_api from SpecialistSector

Also stub out the tags method it uses.
Use real content_api for specialist sector tests

Whitehall.content_api is a faked double in development and test
environments. For the specialist sector tests we explicitly want to test
against a real content_api adapter with stubbed web requests.
Use specialist_sectors in RegisterableEdition

Previously it was looking through mainstream categories to find oil and
gas tags.

Also mixin Edition::SpecialistSectors into DetailedGuide.
Fix SpecialistSector validation for new editions

If you assign specialist_sector_tags to a new (unpersisted) edition they
won't get an edition ID and so won't be valid. This change makes them
check for the presence of edition instead and manually assigns it in
specialist_sector_tags=
Data migration for moving to Specialist Sectors

Removing Oil and Gas Mainstream Categories while moving the relted Detailed
Guides to Specialist Sector Tags
Mixin specialist sectors to consultation, collection + policy

Also adding the partial to those 3 forms along with detailed guides
Revert "Exclude sectors from detailed guide category lists"

This reverts commit b5a667d0febcd20212c56e863ab959ec58262b72.

Specialist sectors no long piggy back on mainstream categories so this
workaround isn't needed.
Change industry_sector to specialist_sector

Panopticon and Content API now use specialist_sector.
Mixin SpecialistSectors to the base Edition class

All content formats should be taggable to specialist sectors. Whether
and how they are displayed in specialist browse is yet to be determined.

Also update all edition forms to include the specialist sector fields.
Move SpecialistSector.options_for_select to helper

As massaging the data into a format that Rails helpers will accept is a
view concern we've split this part out.

Adds SpecialistSector.grouped_sector_topics which fetches specialist
sector tags from panopticon and turns them into a more useful data
structure.

Adds EditionsHelper.specialist_sector_options_for_select which takes
those grouped topics and turns them into the nested array format that
Rails expects.
Only show specialist sectors field when content API available

If the content API is unavailable the field isn't rendered which allows
editors to continue with their work as normal. Any specialist sector
associations on the drafts being saved will remain unchanged.
Fix typo in specialist sector scenario
Add dependent destroy to MainstreamCategory joins

When a category is destroyed all the join records should also be
removed.

Amend the oil and gas specialist sector data migration to use
destroy_all instead of delete_all so the callback is invoked.
Merge pull request #1258 from alphagov/specialist-sector-tagging

https://www.pivotaltracker.com/story/show/65361088

Specialist sector tagging