Only add autoCopy/autoDestroy calls on cobegin/coforall task args that are local
Only add autoCopy/autoDestroy calls on cobegin/coforall task args that are local

The test case distributions/diten/Cyclic.chpl fails unless the domain task arg
is copied (because it is a temporary returned by the iterand of a coforall).
The autoCopy call is only needed to more the ref count of a ref counted type
away from zero.

The need for an autoCopy only applies to a local variable.  One that is
declared in an outer scope can be referred to (i.e. passed by reference).

The code in parallel.cpp to set up task function calls started out (as of last
release) copying none of the task args (of record or RWT type, passed by
value).  I change that to copy all of them.  This patch is the compromise
solution, copying only those arguments that need to be copied.

hildeth/chapel,hildeth/chapel,hildeth/chapel,hildeth/chapel,hildeth/chapel,hildeth/chapel,hildeth/chapel