Fix pointer calculation for `SubArray` with none-dense parent. (#51900)
And code clean for `first_index` and `compute_linindex`:
1. call `compute_linindex` directly in `first_index(::SlowSubArray)`.
(There's no need to calculate stride/offset.)
2. remove the uneeded `compute_linindex` dispatch
(`first(x::ScalarIndex) == x`)