use awaitBusy, to give the delete index operation some time to remove the percolator queries associated to it on the _percolator index
Increased timeout
Improved test, printed out potential shard failures
added explicit creation of parent type in create index
take test out of the loop - too flaky
Add highlighting support for suggester.

This commit adds general highlighting support to the suggest feature.
The only implementation that implements this functionality at this
point is the phrase suggester.
The API supports a 'pre_tag' and a 'post_tag' that are used
to wrap suggested parts of the given user input changed by the
suggester.

Closes #3442
Add binary protocol backwards compatibility for suggest highlights

This change requires different request processing on the binary protocol
level since it has been we provide compatibilty across minor version.
Yet, the suggest feature is still experimental but we try best effort
to make upgrades as seamless as possible.
Improved filtering by _parent field

In the _parent field the type and id of the parent are stored as type#id, because of this a term filter on the _parent field with the parent id is always resolved to a terms filter with a type / id combination for each type in the mapping.

This can be improved by automatically use the most optimized filter (either term or terms) based on the number of parent types in the mapping.

Also added support to use the parent type in the term filter for the _parent field. Like this:
```json
{
   "term" : {
        "_parent" : "parent_type#1"
    }
}
```
This will then always automatically use the term filter.

Closes #3454
Return nothing instead of everything in MLT if no field is supported.

Today due the optimizations in the boolean query builder we adjust
a pure negative query with a 'match_all'. This is not the desired
behavior in the MLT API if all the fields in a document are unsupported.
If that happens today we return all documents but the one MLT is
executed on.

Closes #3453
Added improvements for terms filter on _parent field similar to what has been for term filter.

Relates to #3454
Improved error message when the mapping document is malformed
Added tests for malformed mappings with no root object

This commit also makes the error message more consistent with
other exception messages in the DocumentMapperParser.
improve effort into figuring out the shard associated with a search failure
Assert on index delete in tests to ensure all indices are wiped even on disk
make sure we add the _uid as the first field in a doc
this will improve early termination loading times, but requires potential improvements in Lucene in terms of decompression
Use DiscoveryModule instead of ClusterService to obtain local node id

The ClusterService might not see the latest cluster state and therefore
might not contain the local node id. Discovery will always see the local
node id since it's set on startup.
Catch RejectedExecutionException on node shutdown
Expose 'index.compound_on_flush' via engine settings

Lucene 4.4 shipped with a fundamental change in how the decision
on when to write compound files is made. During segment flush the
compound files are written by default which solely relies on a flag
in the IndexWriterConfig. The merge policy has been factored out to
only make decisions on merges and not on IW flushes. The default now
is always writing CFS on flush to reduce resource usage like open files
etc. if segments are flushed regularly. While providing a senseable
default certain users / usecases might need to change this setting if
re-packing flushed segments into CFS is not desired.

Closes #3461
Create mapping ahead of time and don't rely on index request in test
ttl can be as lower than 0 (purge interval)