fix: Retain microfrontend proxy tasks when using `filterUsingTasks` (#12545)
## Summary
- Fixes microfrontend child packages not running when `filterUsingTasks`
future flag is enabled
- The `with` field (used by MFE to co-schedule proxy tasks alongside dev
tasks) creates no graph edges in the task graph — only BFS traversal
queue entries during engine building. When `retain_filtered_tasks`
prunes the engine via forward DFS on edges, these edge-less siblings get
dropped, killing the MFE proxy.
- Adds `expand_with_siblings` to transitively include all `with`
siblings in the retained task set before pruning
- Adds integration tests for `$TURBO_ROOT$` inputs through the task
filter path
## How to test
Given an MFE config in package `web` with child app `docs`:
```
turbo run dev --filter=docs
```
With `filterUsingTasks: true` in turbo.json future flags, `web#proxy`
should now be retained alongside `docs#dev`.