Fix for "Has child ignores type" - #3818

`HasChildFilter` ignores the `childType` provided. The fix is to include this in a filter while searching for the children to fix the context.

Test cases verify that we do not qualify children whose types conflict with the provided type in `has_child`.

The test scenario is simpler than the description in #3818. Simply, create a parent with two children of different types and issue a `has_child` query with fields from one child and the type of another. This returns the parent, whereas with the fix, it won't