Add narrow queries as individual subfilter to promote caching

Each narrow query will be cached individually which means more cache
reuse
Simplify mappings for elasticsearch fields.

- don't specify defaults (index:analyzed for strings, boost: 1.0)
- omit extra settings that have little or negative effects
  (term_vector:with_positions_offsets)
- only use type-specific settings (not_analyzed makes no sense for
  non-string types)

Fixes #866