Postponed acknowledging put mapping requests to after master has finished processed them

Also - TransportMasterNodeOperationAction was potentially use stale cluster state

Closes #3487
Limit the number of extracted token instance per query token.

FVH deploys some recursive logic to extract terms from documents
that need to highlighted. For documents that have terms with super
large term frequency like a document that repeats a terms very
very often this can produce some very large stacks when extracting
the terms. Taken to an extreme this causes stack overflow errors
when this grow beyond a term frequency >= 6000.

The ultimate solution is a iterative implementation of the extract
logic but until then we should protect users from these massive
term extractions which might be not very useful in the first place.

Closes #3486
Catch Throwable rather than Exception if latches are present.
Added multi percolate api

The multi percolate allows the bundle multiple percolate requests into one request. This api works similar to the multi search api. The request body format is line based. Each percolate request item takes two lines, the first line is the header and the second line is the body.

The header can contain any parameter that normally would be set via the request path or query string parameters. There are several percolate actions, because there are multiple types of percolate requests:
* `percolate` - Action for defining a regular percolate request.
* `count_percolate` - Action for defining a count percolate request.
* `percolate_existing_doc` - Action for defining a percolate existing document request.
* `count_percolate_existing_doc` - Action for defining a count percolate existing document request.

Each action has its own set of parameters that need to be specified in the percolate action.
Format:
```
{"[header_type]" : {[options...]}
{[body]}
```

Depending on the percolate action different parameters can be specified. For example the percolate and percolate existing document actions support different parameters.

The following endpoints are supported:
```
POST localhost:9200/[index]/[type]/_mpercolate
POST localhost:9200/[index]/_mpercolate
POST localhost:9200/_mpercolate
```

The `index` and `type` defined in the url path are the default index and type.

Closes #3488
Also catch EsRejectedExecutionException next to
RejectedExcecutionException
better log message for none gateway, also make it debug level
remove the assert on AnalyzerWrapper
see https://issues.apache.org/jira/browse/LUCENE-5170
Removed todo
Added some comments regarding the acknowledgement logic in MetaDataMappingService.putMapping

Made left over cluster state debug log entry less verbose.
lazily create the no shard available exception
Make RestSearchAction#parseSearchXXX(RestRequest) public
When building a plugin with a new search endpoint, you need to parse the request as a searchRequest.

Methods exist in RestSearchAction class but are private.

We will modify them to be public static. This applies to:

* `RestSearchAction#parseSearchRequest(RestRequest)`
* `RestSearchAction#parseSearchSource(RestRequest)`

 Closes #3499.
Allow to update the _source mapping exclude/include dynamically when we merge mappings.

Closes #3491
UpdateMappingTests -  updateDefaultMappingSettings now creates the index with a mapping.
function score test cleanup
- also, properly report on the failed assertion in toFloat
- use function score in the explain compared to custom score
- use the Tests suffix convention
Raise default DeleteIndex Timeout

Currently the timeout for an delete index operation is set to 10 seconds.
Yet, if a full flush is running while we delete and index this can
easily exceed 10 seconds. The timeout is not dramatic ie. the index
will be deleted eventually but the client request is not acked which
can cause confusion. We should raise it to prevent unnecessary confusion
especially in client tests where this can happen if the machine is pretty busy.

The new timeout is set to 60 seconds.

Closes #3498
Fix test include pattern to include *Test.class

We missed *Test.class which is not our convention but we could miss
some tests. We should better include the *Test.class tests as well.
Fix assert to check the deviation rather than the absolute difference.

Deviation should be less or equal to 0.01 ~ 1% after the cast.
empty numeric field data should retain the correct num docs
the fact that there are no values in the numeric field data, doesn't mean there are no docs, behavior should be to the bytes variant
rename class to conform with Tests suffix
no need doc action test to check count in before class
 - also, since we randomize client transports, no need for specific classes to test for it, we test different clients across all our tests