This adds ability to specify 'named' threadpool to searches.

Currently all searches uses SEARCH thread pool to run queries. However if we have programs using ES with different 'interests' and 'SLA's' -they can block each others queries.

Example:

* 'fred' indexes documents, but does some denormalization and needs to query ES for that purpose.
* 'barney' queries same ES cluster to serve website traffic.

fred's queries get queued in thread pool due to large amount of queries from barney at times ; fred is okay with 800 ms while barney needs query response by 200 ms.

Named threadpools need to be configured in yml explicitly, eg:

    threadpool:
         fred:
            type: fixed
            size: 30

[ Here fred , named threadpool is configured with default size of 30]

SearchRequestBuilder and ScrollRequestBuilder takes threadpool name ,
but defaults to SEARCH. REST API accepts new http parameter 'threadpool'
which can take name of threadpool to run queries.

    curl -XPUT "http://localhost:9200/movies/movie/1" -d'
    > {
    >     "title": "The Godfather",
    >     "director": "Francis Ford Coppola",
    >     "year": 1972,
    >     "genres": ["Crime", "Drama"]
    > }'

Call with 'custom' threadpool
--------------------------------------

    curl 'localhost:9200/_search?q=*&threadpool=fred'

Invalid threadpool name
--------------------------------

    curl 'localhost:9200/_search?q=*&threadpool=barney

    {"error":"SearchPhaseExecutionException[Failed to execute phase [query], all shards failed; shardFailures {[J8vv81u1SKK5BUizD5Yppw][movies][0]: ElasticsearchIllegalArgumentException[No executor found for [pollois]]}{[J8vv81u1SKK5BUizD5Yppw][movies][1]: ElasticsearchIllegalArgumentException[No executor found for [pollois]]}{[J8vv81u1SKK5BUizD5Yppw][movies][2]: ElasticsearchIllegalArgumentException[No executor found for [pollois]]}{[J8vv81u1SKK5BUizD5Yppw][movies][3]: ElasticsearchIllegalArgumentException[No executor found for [pollois]]}{[J8vv81u1SKK5BUizD5Yppw][movies][4]: ElasticsearchIllegalArgumentException[No executor found for [pollois]]}]","status":400}


Thanks to way original code is done - _stats shows new threadpool stats

Closes #8124