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
My concern here is that we would still need this method anyway in case the field is stored or has doc values, so we would need to have completely different paths depending on whether the field is only indexed, or also stored and has doc values. Would it be ok with you?