Admin benchmarking tests for main edition types

Increase the number of runs to increase accuracy of benchmark.
Enable memcache in production and benchmark env
Caching for topic selects
Caching for topical event selects
Remove bogus code.

the "alternative_format_required" local was only ever set to true in
another partial completely. Instead of passing this into the helper, we
can ask the object itself if it requires an alternative format provider
or not.
Cache topics and topical events form fields

If there are no selected values, the HTML output for these select inputs
will not change unless the data containers themselves have changed, i.e.
the cache digest has changed. Therefor we are able to fragment-cache
the generated HTML for this case.
Add cached containers for organisations
Add caching edition organisation select fields

This also pulls out the generation of the selects from the form builder
helpers to plain-old vanilla form helpers. I hope to simplfy these and
the code in the controllers to pre-load the organisation join models
in the controllers in a later commit
Simplify EditionsController

Because of the way the form fields are now rendered, we no longer need
to pre-build all the join models ahead of time in the controller action.
Consolidate EditionOrganisation filters for :new

Why have two filters when you can have one?
More before_filter simplications

Instead of duplicating the before_filter across multiple controllers,
we can include it in the base class and only execute it if appropriate,
i.e. when the edition type supports images
Simplify and rename helper method

The new name better reflect what the method is returning. The method was
also over-complicated:

* It had a boolean flag switching whether it returned a link or just
plain text, but there is nowhere in the app that uses it to generate a
link.
* No `current?` role appointment will ever have an ended_at timestamp,
so the ternary operator check is redundant.
* There is no HTML in the text, so marking it html_safe is unnecessary.
Typos and omissions
Add note of explanation for future-developer

The way that associated lead organisations and supporting organisations
are managed is far from ideal; instead of explicit and simple
associations for each, there is a single "organisations" association,
and various hacky methods are used to massage lead and supporting orgs
into this single association whilst maintaining an order (See the
Edition::Organisations mixin and the
:delete_absent_edition_organisations before_filter on
Admin::EditionsController for a sense of the gynmastics being
performed).

Because of this, we can't rely on the conventional rails way of
accessing unsaved lead and supporting organisations in the forms, we
must instead go through the unsaved join models. These helpers
encapsulate that lookup.
Merge pull request #1712 from alphagov/edition-form-performance

Edition form performance improvements part 1