[EXPERIMENTAL] Preview of scattering relation unions

Support for scattering relation unions in Clay.

This pull request if for review purpose only.  DO NOT accept.  Documentation and function deprecation will be update according to the discussion.  Unitary tests will be updated and extended.
No transformation bugs fixed comparing to the original version, will commit after review.