Allow awareness attributes to be reset via the API

Currently we don't allow resetting the awareness
attribute via the API since it requires at least one
non-empty string to update the setting. This commit
allows resetting this using an empty string.

Closes #3931
Document strict dynamic type mapping.
Fix small typo in terms lookup tests mapping.
Fix small typo in terms lookup tests mapping (count api tests)
[DOCS] Reorganised the highlight_query docs and added a version flag
Clean up wording to reduce confusion

The description of the timeout parameter was worded misleadingly; it implied that the API would wait until the cluster reached the desired level and then stayed at that level for the timeout. I've tweaked the sentence to remove the risk of confusion.
Added facet support to the percolate api.
Closes #3851
Fix markup
externalize writing "raw" fields to helper method
Merge pull request #3940 from rboulton/patch-1

[Docs] Clean up wording in cluster health api doc
Highlighting can return excerpt with no highlights

You can configure the highlighting api to return an excerpt of a field
even if there wasn't a match on the field.

The FVH makes excerpts from the beginning of the string to the first
boundary character after the requested length or the boundary_max_scan,
whichever comes first.  The Plain highlighter makes excerpts from the
beginning of the string to the end of the last token before the requested
length.

Closes #1171