Do not override thetas if sum is less or equals to `0`

Closes #4390
Made sure the new cluster state is not held by AckCountDownListener

(also made AckCountDownListener class static)
Made sure that we never throw IndexMissingException in indices query and filter

In case all the indices specified in the query/filter are missing, we just execute the no_match query/filter, no need to throw any error.

It could happen although we internally use IgnoreIndices.MISSING, due to MetaData#concreteIndices contract, which throws IndexMissingException anyway if all requested indices are missing

Closes #3428