Fix built-in indexing not being used where index type wasn't "obviously" usize
Fixes #33903
Fixes #46095
This PR was made possible thanks to the generous help of @eddyb
Following the example of binary operators, builtin checking for indexing has been moved from the typecheck stage to a writeback stage, after type constraints have been resolved.