Simplify `PyArray::CopyToDeviceWithSharding` using `Sharding::WithDeviceAssignment()`
Simplify `PyArray::CopyToDeviceWithSharding` using `Sharding::WithDeviceAssignment()`

`Sharding::WithDeviceAssignment()` makes it unnecessary to do manual type dispatch to rewrite device assignment of a sharding.
