possibleTypes
returns all possible types:
for an object, return this object
for an interface, returns all objects implementing this interface (possibly transitively)
for an union, returns all members
TODO v4: It's unclear whether we need this for scalar and enums.