fix(turbo-tasks-backend): use correct TaskDataCategory for is_immutable check (#88331)
## Fix task immutability check by using correct TaskDataCategory
### What?
This PR fixes a bug in the task immutability check by ensuring we use `TaskDataCategory::Meta` instead of `TaskDataCategory::Data` when checking if dependent tasks are immutable.
### Why?
The immutable flag is stored in the Meta category, but we were incorrectly checking the Data category. This could prevent us from reading the immutable flag if Meta hadn't been restored for the task.
### How?
- Changed the category from `TaskDataCategory::Data` to `TaskDataCategory::Meta` when reading tasks where we needed `immutability`
- Added a clarifying comment explaining why we use the Meta category
- Moved the `is_immutable()` implementation from `TaskGuardImpl` to the `TaskGuard` trait with a default implementation that uses `has_key(&CachedDataItemKey::Immutable {})` which enforces correct access modes