Change the top_hits to be a metric aggregation instead of a bucket aggregation (which can't have an sub aggs)

Closes #6395
Closes #6434
Fielddata: EmptyOrdinals#getMaxOrd() should return 0 instead of 1, since ordinals are zero based since #5871.
Aggregations: if maxOrd is 0 then use noop collector

Before the OrdinalsCollector was used and this leads to a ArrayIndexOutOfBoundsException

Closes #6413
TransportClient: Improve logging, fix minor issue

In order to return more information to the client, in case a TransportClient
can not connect to the cluster, this commit adds logging and also returns the
configured nodes in the NoNodeAvailableException

Also a minor bug has been fixed, which propagated exceptions wrong, so that an
invalid request was actually tried on every node, if a regular connection failure
on the first node had happened.

Closes #6376