Add functionality for translating News Articles

Making it possible to translate News Articles is trivial (ensuring that
`NewsArticle#translatable?` returns true and that we populate the
`@missing_translations` array in the controller). Unfortunately, testing this
in the same way that we're testing the translation functionality for Worldwide
priorities has lead me to add 11 controller tests, which will definitely slow
the test suite.

My current plan is to add this duplication in the controllers and tests and to
see what I can do about it later.
DRY up all the translation-related controller tests

This follows the pattern we've used previously of introducing a macro like
method that generates all the tests.

As noted in the previous commit, this isn't ideal as it makes it very easy to
rapidly increase the number of tests in the codebase. I'm hoping that I'll be
able to reduce the effect of this in a future commit.
DRY up logic for determining missing translations

There's still some duplication of this functionality in the
world_location_translations_controller and
worldwide_organisations_translations_controller but I'll look into those
separately.
Simplify the news article and priority controllers

I don't particularly think it's any worse to access
`@edition.missing_translations` in the template rather than assigning it to
`@missing_translations` in the controller. The advantage is that I *think*
this might make it possible to test the translation functionality in the
edition controller tests, rather than having to test it in each of the
controllers that correspond to translatable models.
Introduce GenericEditionsController

My hope is that this controller will make it possible for us to reduce the
number of tests we have. At present, we make use of the macro style tests to
ensure that the different document specific controllers behave as intended.
This is overkill when the behaviour we're testing is provided by the
`EditionsController` or one of the generic templates (those in
app/views/admin/editions). The `GenericEditionsController` should make it
possible to test this common behaviour while reducing our total number of
tests.

The `generic_editions` resource is only defined in the test environment: We
definitely don't want it in production and I don't think it's particularly
useful in development.

I've had to extend the `GenericEdition` object so that we can dictate how it
responds to the `#translatable?` method, as `Edition#translatable?` returns
false by default.

I've moved all the translation related tests from the `should_be_translatable`
macro into the new `Admin::GenericEditionsController::TranslationTest`.

I've created the test/functional/admin/generic_editions_controller_tests
folder so that we can have multiple behaviour related tests using the
`GenericEditionsController`.

I should be able to remove some of the hand-rolled generic_edition path/url
methods in test/factories/editions.rb in a future commit.

I *think* that this new controller will allow us to reduce the number of
Cucumber scenarios if we wish. Instead of having separate scenarios for
translating Worldwide priorities and News articles, for example, we could have
a scenario that talks about Translatable editions.
Remove unused hand-rolled route helpers

The `admin_generic_edition_path`, `admin_generic_edition_url` and
`edit_admin_generic_edition_path` are all provided by the test-only
generic_editions resource. The `admin_generic_edition_editorial_remarks_path`
helper doesn't appear to be used anywhere.
Make speech translatable

This is now as simple as ensuring that `Speech#translatable?` returns true.
The tests that ensure the controller is hooked up correctly are all in
`Admin::GenericEditionsController::TranslationTest`.
Make case study translatable

This is now as simple as ensuring that `CaseStudy#translatable?` returns true.
The tests that ensure the controller is hooked up correctly are all in
`Admin::GenericEditionsController::TranslationTest`.
Generalise the translating documents scenario

We can now translate Worldwide priorities, News articles, Speeches and Case
studies so I don't think it makes sense for this scenario to talk about
Worldwide priorities specifically. *NOTE* The implementation still creates a
Worldwide priority but I think it's more important that the human friendly
language just talks about 'translatable documents'.
Merge pull request #276 from alphagov/add-functionality-for-translating-other-document-types

Add functionality for translating other document types

https://www.pivotaltracker.com/story/show/44794809