Disable the text extraction feature.

Since we removed the initialiser override from our deployment code which
disables this feature in production, this will default to enabling the
feature, which may start sending extracted attachment bodies to
Rummager. Since this feature was never completed, we've not fully tested
it, and we're planning to remove it in its current form, we shouldn't
inadvertently enable it.

There's one test that assumes text extraction is enabled in the app;
this now stubs out the feature flag.
Merge pull request #1709 from alphagov/disable-text-extraction

Disable the text extraction feature
Update API adapters.

So that we get partial matching for panopticon request body in the test
stubs.
Send updates to search after changing the topics

Also update tests to check that the correct topics are being sent to
panopticon after they're changed.
Move topic retagger test to integration directory

It's not a unit test, so it shouldn't live under test/unit
Merge pull request #1711 from alphagov/register-topic-changes-with-search

Register topic changes with search
Ensure UrlMaker can be found during lookup

We get occasional uninitialized constant exceptions because the
Whitehall::UrlMaker class cannot be found. This adds the class to its
parent module such that it can be found regardless of the execution path
of the code. See http://urbanautomaton.com/blog/2013/08/27/rails-autoloading-hell/
for more details about constant lookup and Rails autoload.
Merge pull request #1713 from alphagov/autoload-url-maker

Ensure UrlMaker can be found during lookup
Remove the attachment text extraction feature

This feature is currently implemented by hooking into the virus-scanning
process to do the actual text extraction. As well as significantly
slowing down the virus scanning process, this has caused issues where
tika gets wedged, and then blocks the entire virus scanning queue.

Until we have the time to implement this feature properly, the benefit
it provides to our search index isn't worth the operational pain it's
causing us. This PR therefore removes the feature (while leaving it in
place for HTML attachments because they don't have the same external
processing requirements - we just run the body through Govspeak).
Merge pull request #1716 from alphagov/kill-text-extraction

Remove the attachment text extraction feature.
Remove old topics from top nav.
Remove old topics from organisation homepage.
Merge pull request #1717 from alphagov/remove-topics-from-navigation

Remove old topics from top navigation & org page

https://www.pivotaltracker.com/story/show/78830362
Merge pull request #1712 from alphagov/edition-form-performance

Edition form performance improvements part 1
Simplify ministerial appointment select text

There were inconsistencies between the way previous and current roles
were being displayed, e.g:

"The Rt Hon David Cameron MP, Prime Minister, in Cabinet Office and
Prime Minister's Office, 10 Downing Street"

and

"Tony Blair, as Prime Minister (02 May 1997 to 27 June 2007), in Cabinet
Office and Prime Minister's Office, 10 Downing Street"

This change gets rid of the superfluous "as" and "in" such that they now
read:

"The Rt Hon David Cameron MP, Prime Minister, Cabinet Office and
Prime Minister's Office, 10 Downing Street"

and

"Tony Blair, Prime Minister (02 May 1997 to 27 June 2007), Cabinet
Office and Prime Minister's Office, 10 Downing Street"
Cache ministerial role tagging

This adds caching to the ministerial roles select on edition forms.
Things of note:

The select field lists all role appointments for ministerial roles (past
and present) and includes the role holders name, the role name, the
dates they held the role if it was in the past, and the organisations
they belong to in the option text. This creates quite a dependency graph
for generating a cache digest that will correctly invalidate. This is
handled with after_update callbacks on the MinisterialRole and Person
models that touch the :updated_at timestamp on their role appointments.
This means that any changes in a person's organisations won't be
instantly reflected in the selects, but given that this information is
not central to tagging to a ministerial role appointment, this seems
like a reasonable compromise.
WIP