[pipeline] Improve generator macros
pipeline generator macros should:
- Handle results type.
- Automatically figure out how many inputs there are.
- Correctly handle source generators. Right now, it tries to pass a vec, but source results only return a single value or close.