ES feed indexers and search view, refactor indexing code to use a BaseIndexer

In an attempt to write a search view for the new Feed Curation Tool, things have gotten larger and into the scope of refactoring a lot of indexing code to not work with just apps.

The components of this patch to look at:

- [ ] **BaseIndexer**: defines common indexing methods such as ```get_analysis``` or ```setup_mapping```, or ```run_indexing```.
- [ ] **reindex_mkt**: now with zero webapp-specific code
- [ ] **Refactoring WebappIndexer code**: new standard to put indexing code in ```indexers.py``` (and ```test_indexers.py```), use the ```BaseIndexer```
- [ ] **Feed Indexers**: there are three of them, all inherit from ```BaseIndexer```
- [ ] **Feed Search Views**: search view that pulls from three indexes and serializes into one response
- [ ] **Guillotine**: remove AMO reindex flagging code
Looking at the strings for these I think you want this as not analyzed. Otherwise a string like `'apps-for-brazil'` will get tokenized into `['apps', 'for', 'brazil']`. If we ever want to filter by these in the future this isn't going to work.