Hide "Publish" if document can't be published

When documents have already been published and have no new draft or
their slug is being used by another Document, we want to remove the
ability for them to publish. This commit disables the Publish button and
updates the surrounding info if the document can't be published and
explains why.

I've done this by adding a helper to generate the publish form and set
the various notices/warnings. In doing this I thought we could also
remove the document actions partial. I also needed to expose
published_edition as a public method.

This commit also adds a test for this and changes a step_definition to
be reusable.