Prevent publishing of publications without attachments

https://www.pivotaltracker.com/story/show/49121005

I didn't extend this feature up to Publicationesque as that doesn't
include html attachments.

Adds a new unit test to check that publications can no longer be published
without an attachment (no html_version or attachments).

The factory for publications in the test suite now includes an html_version
so that publications it creates will continue to be valid for
publishing.
* The 'build' strategy should avoid an extra write to the database that
  would slow our tests down.

Fix tests for optional html attachments.
* Adds a without_html_version trait to allow reversing of the new
  default behaviour of the factory.
* Uses this trait to fix the two tests that rely on a lack of html_version

Fix test for new html version slug
* Requirement for an attachment for published versions breaks this test.
* This has been fixed by starting with a normal attachment and then
  swapping it for an html attachment.

Removes the redundant publication trait with_html_version as this is no
longer necessary given the publication factory now always adds an html_version.

Fixes and decouples the html slug test
* The test was coupled to the title of the html set by the factory. This
  patch breaks that dependency by setting the title explicitly.
* This test was broken as the title in the (now removed)
  with_html_version trait was different to the title in the html_version
  factory that is now used instead.

Remove dependency on html trait in test "should destroy html version when
all fields are blank"
* This test is called for both consultation and publication; the trait no
  longer exists for publication.
* Replaced the trait with an explicit addition of an html version.

Cucumber fix - add html version to publication
* Some of the cucumber tests publish publications as part of their steps;
  this was broken by the requirement for an attachment on a publication.
* This patch fills in an html version when filling in the publication form.

Cucumber fix - add an html version to test import data
* The cucumber test "Scenario: Force publishing a successful import after
  speed-tagging" was failing as the data supplied in the step did not have
  any attachments.
* As discussed with Robin the importer should enforce the same rules as
  everything else so imported data will be expected to be valid. As
  such the example data has been modified in this patch to included an
  html version to make it valid.
Merge pull request #777 from alphagov/49121005-pubs-with-no-attachment-invalid

49121005 - make publications with no attachment invalid

https://www.pivotaltracker.com/story/show/49121005