Fewer __get/setitem__ roundtrips.

Closes #339
Reimplements `DistArray.__get/setitem__` to only use one round trip.