* Introducing edge groups
* Add conditional and partitioning edge groups; next add samples and tests
* Add unit tests
* Add samples
* Address comments 1
* Address comments 2
* Update conditional edge group to take in cases and default
* Minor updates to sample
* Collapsing Paritioning Edge group and Conditional Edge group to source edge group
* Improve sample clarity
* Name consolidation
---------
Co-authored-by: Eric Zhu <ekzhu@users.noreply.github.com>