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 think we should skip the cache entirely. I didn't want to fix it here though since this is a more general issue, I think that we cache filters too aggressively, eg. even term filters are cached by default.