Reduce the number of round trips for DistArray.from_localarrays

Now reduced to 0, 1, or 1 per engine. Depending on the arguments.
Add tests for DistArray.from_localarrays