Break up `Edition` and `SpecialistDocumentEdition`

A large amount of things use `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
`SpecialistDocumentEdition` to remove loads of the cruft this
introduces (I doubt `SpecialistDocumentEdition`s use all of the code in
`Edition`, for example).