Improved the CompositeDomainObjectSet

1. Avoided extending DefaultDomainObjectSet to prevent awkward implementation of beforeChange hook.
2. Improved the DelegatingDomainObjectSet so that it is easier to extend it.

+review REVIEW-5199
Removed fluent API from internal classes

For consistency, per Daz' suggestions.

+review REVIEW-5199