Index field names of documents.

The `exists` and `missing` filters need to merge postings lists of all existing
terms, which can be very costly, especially on high-cardinality fields. This
commit indexes the field names of a document under `_field_names` and uses it
to speed up the `exists` and `missing` filters.

This is only enabled for indices that are created on or after Elasticsearch
1.3.0.

Close #5659
I wonder if we should skip the cache entirely here. Those filters correspond to a term query IMO we should just skip caching them entirely? the will be very fast and we can safe memory here