Perform Elasticsearch updates with queued jobs

This removes a whole ton of code that was used to try to do the right
thing by the SearchEngine interface.  Now it is not required and updates
should be much simpler.

Also, one of the methods removed was used to build a text snippet when
Elasticsearch didn't highlight any article text.  Since WMF's upgraded
to Elasticsearch 0.90.7 which is capable of doing this on its own this
commit also configures it to do that.  Yay more code removed, faster
results page loads, and less hacks all around.

Deletes are caught using a hook instead of the SearchEngine infrastructure
which is simpler to execute and to think about.

All update jobs respect $wgDisableSearchUpdate.

The test that was supposed to catch if deletes failed wasn't working and
needed some rewriting so this commit does that too.

Bug: 57316
Bug: 53724
Change-Id: I5a717c254a6797436d5bebea460459dad09f6b89