* Refactor workflow to introduce EdgeRunner for edge execution.
* Fix edge cases
* Convert Workflow, Edge, EdgeGroup, and Executor into AFBaseModel to support object model serialization
* format
* remove accidental file
* fix typing
* Add type information to EdgeGroup and Executor subclasses
* fix format
* Add condition_name field to Edge
* Add new fields
* remove Optional
* Update
* Use generic for WorkflowContext and use its type parameters to indicate executor's output types
* Update
* Fix type errors and add in-line comments
* fix test
* type
* Fix executor type issues
* 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>