Equal operator in Pair returned pointer instead of lvalue.
Fix problem with using zip array as output then input

It was the case that the zip transfer would set the const portal as
invalid when used as output. That's fine for the output operation, but
then when you tried to use the array as an input, the ArrayHandle would
assume that the data is already available in the execution environment
and would bypass the transfer.
Merge branch 'zip-output-to-input'