Replace associations with scopes and tidy up

Too many associations where leveraging scopes will do - this gets of
half a dozen.

I've also renamed the unpublished_edition method to
non_published_editions as we the concept on an unpublished edition is
now a thing in the app and they're not quite the same thing.

Finally, this gets rid of some tests around topics and policies that
are no longer relevant as topics are now directly assigned to
editions, rather than inferred through policies.
Replace "archived" state with "superseded"

This renames the existing "archived" state to "superseded", migrating
any existing archived editions to the new state label. The data
migration happens as a normal schema migration so that it will happen
during the usual deploy procress, rather than as a manual data
migration once the code is deployed. This greatly simplifies the story
as we don't need to perform staggered deploys with tha app working
with the data in both pre and post data-migration state. This has been
facilitated by this change (https://github.com/alphagov/whitehall/commit/9b57550ceb3770ee60018c24358630094b9257bd)
which has already been rolled out to master, which will keep the state
machine during the period between the data being migrated and the new
code being switched in.

Note: if any documents are published between the data migration being
run and the new code becoming active, we could end up with some
editions incorrectly labelled with the old "archived" state. We should
either co-ordinate with editors to prevent this from happening, or run
a manual check afterwards to mark any "archived" editions as
"superseded".
Override build_unpublishing to set known attribs

We shouldn't rely on this data being posted by the form.