Add/fix index selectors.

Closes #3758.
More AbstractIntegrationTest
Added @TestLogging to all methods to see which shards we refresh and which ones we search on

Increased wait timeout and added multiple iterations there as well, one is not enough. We want to verify whether the problem gets fixed later on.
fix log to trace
Fixed serialisation bug for multi percolate request and response classes.

This bug manifests when running with transport client.
Add listener nodes to nodes list if 'sniff' is true

TransportClient doesn't add the initial nodes to the nodes list
if it doesn't retrieve any nodes from the listeners which can cause
the transport client to throw a 'NoNodeAvailableException' if the
'sniff' response didn't return any nodes. This situation can occure
if the client tries to get the listener nodes cluster state while that
node is not yet connected to any other nodes.
Fail GetIndexTemplate if names it null or empty
Call validate in TransportClients before request is send
Add missing TransportHandler for clear_sc (ClearScroll)
Small cleanups in TransportClient et.al

Catching Throwable instead of Exception in TransportClient
and TransportClientNodesService and restore interrupted flag
if interrupt exception is caught and ignored
Cleanup Integration Tests
Add completion field support in Rest nodes stats

Closes #3746
add internal source to refresh
can be used to more easily understand where its coming from
add internal source to acquire searcher
add a source indicating why the searcher was acquired
move the internal source for a refresh to be required
Added support for dynamic transport client ratio in tests.

Currently tests only run with node clients but eventually we want to
run all tests with randomly choosen node / transport clients. To enable
this during development and on test servers as a transition phase this
commit adds the ability to allow a fraction of the clients used in
tests to be transport clients. By default this is still disabled.
To enable transport clients in tests pass '-Dtests.client.ratio=[0..1]'
where '1.0' will force transport clients and '0.0' completely disables
them. If an empty string is passed the ratio is chosen at random for
each test.
disable 'SearchWhileCreatingIndexTests' for now - fix is already in the pipeline
add internal origin to delete by query
Cut RecoveryPercolatorTests over to AbstractIntegrationTest
Added node restart capabilities to TestCluster
Trigger retry mechanism (onFailure method) instead of invoking transport service with null DiscoveryNode when no DiscoveryNode can be found for a ShardRouting.
cut over more tests to AbstractIntegrationTest