Enforce query instance checking before it wrapper as a filter

We have the default QueryWrapperFilter as well as our custom one while
our wrapper is explicitly marked as no_cache such that it will never
be included in a cache. This was not consistenly used and caused several
problems during tests where p/c related queries were used as filters
and ended up in the cache. This commit adds the QueryWrapperFilter
ctor to the forbidden APIs to enforce the query instance checks.
Improve resource handling in Parent/ChildQuery
Add slop to prefix phrase query after parsing query string

This fixes a regression introduced by #5005 where the query slop
was simply ignored when a `match_phrase_prefix` type was set.

Closes #5437
[TEST] Reduce iterations in RandomAllocationDeciderTests
Improve exception handling in HttpDownloadHelper
Remove PMD clone warning

Removed PMD clone warning on class ElasticsearchMergePolicy