Add donation attr to ReshardOp and pass that verifies donations are set correctly.
Add donation attr to ReshardOp and pass that verifies donations are set correctly.

The pass verifies that:
1) No array is donated more than once.
2) If an array that is an input to the IR program is donated, then it must have the ifrt.donated attribute set.
