Support set operations on object collections
Do not merge before !540 (merged)
This MR is based on !540 (merged) and is an extension to it. It add Contains, Intersection, and Difference set operations to object collections.
Related to #889 (closed)