`AsStrided`: Improve error handling and error messages. (#9723)
This PR refactors `AsStrided` node implementation, and improves its
error handling by making it override `SafeLower`.
**Key Changes:**
- Replaced `Lower` override by `SafeLower`
- Inlined `LowerAsStrided` into the `SafeLower` implementation +
comments
- Added check `CheckSpecFitsInput()` at tracing and lowering time
- Moved `GetArrayStridePermutation()` out of `AsStrided` class, and
renamed it to `GetDescendingOrderPermutation()`
- Returns a descending order permutation of the given span
- Moved `StrideIsSupported` out of `AsStrided` class, and renamed it to
`AsStridedIsSupported()`