Increase coverate around method being refactored
Replace associations with simpler methods

There were a whole truck-load of associations solely here for the
purposes of chaining them together to get a set of published editions
that are related to the current edition's document (i.e. the inverse of
the documents that this edition is related to). Unfortunately the
resulting query was returning the wrong things: it would also return
published editions of documents that have *any editions* (even
superseded ones) that were once related to the edition's document.
This made it impossible to disassociate a detailed guide from those that
have been associated with it, even when they are re-editioned and the
edition_relation is removed on the latest edition. Sorry if that sounds
confusing.

This replaces the chained associations with simpler methods that
generate the appropriate SQL for both inbound and outbound related
published detailed guides.
Simplify and reuse existing code

Instead of treating DetailedGuide as a special little snowflake with its
own associations, we can simply re-use the existing RelatedDocuments
mixin to allow detailed guides to be related to others.
Handle legacy params temporarily

This is so that any editors that have a detailed guide open for editing
whilst the deploy is in progress can still successfully submit their
changes.

This can be rolled back once the code has been successfully deployed.