JDK-8046841: DistributedPropertySet#contains() problem for sattelites' fields
Merge branch 'distributedPropertySet_contains' into 'master'

DistributedPropertySet#contains(key) inconsistency

@ryan.eberhard @harold.carr

This fixes PIT test + issue JDK-8046841. The methods are not really consistent now -

DistributedPropertySet.DistributedMapView#contains() returns:
a) true  if value is null for this key and it is defined by the DistributedPropertySet
b) false if value is null for this key and it is defined by DistributedPropertySet's satellite

Simple change - checking on satellite's asMap() instead of directly on satellite fixes the issue.

Second thing - I am not sure about loop in DistributedPropertySet#contains():

    @Override
    public boolean containsKey(Object key) {
        if (viewthis.containsKey(key))
            return true;
        for (PropertySet child : satellites.values()) {
            if (child.containsKey(key)) {
                return true;
            }
        }
        return false;
    }

It seems to me be unnecessary - it should be covered by testing viewthis map. Anyway not to break anything in DISI, keeping as is for now.