[Chapel Merge] Add parallel extension methods to the `list` type

Branch: refs/heads/master
Revision: 2f7270b
Author: dlongnecke-cray
Log Message:

Add parallel extension methods to the list type (#16453)

Add parallel extension methods to the list type (#16453)

Add some methods to the list type intended to make it easier to
safely modify lists in a parallel context.

The this() accessor method now emits a compiler warning when
called on lists initialized with parSafe=true. The methods
getValue() and getBorrowed() have been added to make it possible
to get a copy of a list element when parSafe=true.

The set() method has been added to make it possible to modify the
state of a list element when parSafe=true.

The update() method has been added as a way to access a reference
to a list element in a parallel safe manner. It is intended for
use with lists that have been initialized with parSafe=true. While
it can be used with parSafe=false lists, use of this() should
be preferred as it is more idiomatic.

Tests have been added for each new method and the this() compiler
warning.