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.
New flag for unnumbered HTML versions
Simplify heading numbering code

The previous code was bending my head. We only ever number h2 and h3
tags, so just number those and keep things simple
govspeak helper supports manual heading numbering
Wire up unnumbered HTML versions on public site
Simplify options for govspeak_to_html
Tidy up admin UI for unnumbered HTML versions

A sprinkling of markdown help for when a user has specified that this
is a manually numbered HTML version
Fix manually numbered HTML version govspeak headers

We don't want to include the decimal list style on manually numbered
html versions' govspeak headers as they won't necessarily tally with
the manual numbering. Instead, we strip out the numbers from the
headings when they've been manually numbered to stop the govspeak
header links looking weird.
Simplify number extraction method
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
Merge pull request #786 from alphagov/53738105-manual-html-pub-numbering

53738105 manual html pub numbering

https://www.pivotaltracker.com/story/show/53738105