Refactor to create EditionStateTransitionService

the EditionService made the assumption that you'll be performing a state
transition on the edition, but that's not always the case. This commit
teases apart a more general-purpose EditionService from the more
specialised EditionStateTransitionService.
Create EditionRedrafter service

move unit tests from Edition::CreatingDraftTest to EditionRedrafterTest
and adapt appropriately.

Edition still has #create_draft method which delegates to
EditionRedrafter.
Use EditionRedrafter to create drafts