Lookup namespaces with Elasticsearch

This allows us to do accent squashing on namespaces users use to search
without invoking iconv or doing any hacky tranformations in php.  Instead
Elasticsearch allows us to configure this very very efficiently.

This does cause some actions (prefix search, near match, and full text search)
to sometimes (when they contain a : that isn't a recognized namespace) to
incur an extra (very fast) search.  The cost is pretty much just the network
latency.

Finally this includes the start of some refactoring that became obvious once
we added yet another maintenance script.  Its shouldn't be part of this commit
but its too much of a pain to disentange it.

Requires I17337cd8ce90190bd335c9159e9d3bbb39ba89cd from core to fully work.

Changes how the CirrusSearchMappingConfig hook works.

DEPLOYMENT: This is pretty much a noop until the search index is rebuilt post
merging this.

Change-Id: I2d92dc973a66180dc39c646254ce9b11ec269edc