Extract edition progress

The ```Admin::EditionsController``` was full of methods that solely exist to progress editions between states. Pulling them out and encapsulating that behaviour in a single class tidies that up and also makes it easier for us to test effectively.