Add attribute interface for IFRT IR sharding.
Add attribute interface for IFRT IR sharding.

This change modifies the `ifrt.array` type, which previously directly used `ShardingParam` as a parameter to instead use a newly introduced `IfrtShardingAttrInterface`. By doing so, we can support multiple types of shardings in IFRT IR.
