If there are conflicts between the sharding annotations of some op, insert resharding. Make the Spmdization pass more forgiving to allow for more than 2 chained `mesh.shard` ops. Implement `getReductionLoopIteratorKinds` in ShardingInterface for linalg ops.