Allow SpecialistDocument to be pinned to a particular version

This adds a #published_version method to specialist_document which
creates an instance of the SpecialistDocument pinned to the version
number of the published version.

It also adds a keyword argument to the constructor to accept the version
number that the SpecialistDocument is pinned to.

We introduce the concept of 'exposed_edition' which points to the
edition with the pinned version.

Also added a publish! method to encapsulate some of the state change
functionality which was being performed in the
SpecialistDocumentRepository.

The specs are changed to be more explicit about version numbers as the
edition version number now is important in the behaviour of the
specialist document.
Use the SpecialistDocument#publish! method

This encapsulates some of the state change functionality which occurs
upon publication.

Also change to reflect the removal of #latest_edition from the
SpecialistDocument public interface.
Move #create_cases to helper file
Avoid title/slug clashes in created cases

If this method was invoked twice (eg. to create draft and published
cases) then the numbering of the titles would start from 1 on each
invocation and therefore the titles would overlap. This would in turn
mean that slugs would overlap. We don't have any enforcement of slugs in
the models, only in panopticon, so this these editions would've been
created successfully with duplicate slugs. Clearly not desirable.

This change ensures that the title is unique across all invocations.
Add script to rerender published documents
Merge pull request #61 from alphagov/rerender-script

Rerender script

https://www.pivotaltracker.com/story/show/66770364