Break up `Edition` and `SpecialistDocumentEdition`

A large amount of things `Edition.METHOD`, which erroneously causes them to load `SpecialistDocumentEdition`s through inheritance. It's erroneous because the `SpecialistDocumentEdition` is managed through a separate publishing system.

This breaks the inheritance by just copying all the code from `Edition` into `SpecialistDocumentEdition` and removing the inheritance code. It could almost definitely be optimised by someone who knows (@heathd, @elliotcm)  `SpecialistDocumentEdition` to remove loads of the cruft this introduces (I doubt `SpecialistDocumentEdition`s use all of the code in `Edition`, for example).

CC @alext