chore: Extract `turborepo-gitignore` crate from `turborepo-lib` (#11317)
## Summary
Extracts the `gitignore` module from `turborepo-lib` into its own
`turborepo-gitignore` crate.
- Creates new `crates/turborepo-gitignore/` with the
`ensure_turbo_is_gitignored()` function
- Updates `turborepo-lib` to depend on the new crate
- Removes the internal `gitignore` module from `turborepo-lib`
This continues the effort to modularize `turborepo-lib` by extracting
self-contained functionality into standalone crates.
## Testing
- `cargo check -p turborepo-gitignore` ✅
- `cargo check -p turborepo-lib` ✅
- `cargo test -p turborepo-gitignore` ✅ (5 tests pass)