[webgpu] Fix the incorrect shapes when profiling (#26928)
This pull request refactors how input and output tensor shape
information is stored and accessed in the WebGPU context. Instead of
keeping references to the full input and output tensors, only their
shapes are now stored, which helps avoid issues with accessing released
tensors during profiling.
Before
`"inputs[0] = {1,1,768} inputs[1] = {200064,96,1} inputs[2] = {}
outputs[0] = {} "`
After
`"inputs[0] = {1,1,768} inputs[1] = {200064,96,1} inputs[2] = {19206144}
outputs[0] = {1,1,200064} "`