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.