cargo-rail 0.5.3

Graph-aware testing, dependency unification, and crate extraction for Rust monorepos
Documentation
# Issue: Dead Feature Pruning Removes Features Referenced by Other Features

## Summary
The dead feature pruning logic incorrectly removes features that are empty (no-op) but are still referenced by other features in the same crate.

## Reproduction
- **Repo**: helix-db
- **Crate**: `helix-db/helix-db/Cargo.toml`

The `api-key` feature is empty (a no-op):
```toml
api-key = []
```

But it's referenced by the `production` feature:
```toml
production = ["api-key", "server"]
```

cargo-rail's dead feature detection correctly identifies `api-key` as empty/dead, but incorrectly prunes it because it doesn't check if other features depend on it.

## Error After Unify
```
error: failed to load manifest for workspace member `/Users/mr.wolf/loadingalias/testing/helix-db/helix-db`

Caused by:
  feature `production` includes `api-key` which is neither a dependency nor another feature
```

## Expected Behavior
Dead feature pruning should NOT remove a feature if:
1. It is referenced by another feature in the same crate's `[features]` table
2. It is part of a feature dependency chain

## Additional Reproductions

### tikv
- **Crate**: `components/engine_test/Cargo.toml`
- Feature `test-engine-kv-panic` is empty but referenced by `test-engines-panic`
- Error: `feature 'test-engines-panic' includes 'test-engine-kv-panic' which is neither a dependency nor another feature`

### polars (warnings, not failures)
- `polars-ops`: `gather` feature pruned but still referenced in code via `#[cfg(feature = "gather")]`
- `polars-utils`: `sysinfo` feature pruned but still referenced in code

### ruff (warnings, not failures)
- `ruff_dev`: `singlethreaded` feature pruned but still referenced in code

## Fix Location
Likely in `src/cargo/` - the feature scanning/pruning logic needs to build a dependency graph of features within each crate and only prune truly orphaned dead features.

## Additional Consideration
The dead feature detection should also check for `#[cfg(feature = "...")]` usage in the source code, not just Cargo.toml references. A feature may be "empty" in Cargo.toml but still used for conditional compilation.