First shot at upc2c issue #79

This commit implements FoldUPCRLoadStore() and modifies the functions
BuildUPCRLoadParts() and BuildUPCRStore() to use it.  The current
version of the code is able to perform even more than was requested
via the examples in the issue tracker.  The following are the
simplifications that are applied to the remote PTS expression:

1) Fold all indefinite aritmetic (which may arise from a MemberExpr
   or from certain array indexing) into the previously unused
   'srcoffset' (Gets) or 'destoffset' (Puts) of the generated
   upcr_{get,put}_*() call.

2) Any upcr_pshared_to_shared() or upcr_shared_to_pshared() calls
   are removed with a corresponding change of the Accessor (the
   shared vs pshared in the name of the get or put call).

3) There turned out to be cases generated from the testsuite of calls
   to upcr_add_pshared1() and upcr_add_pshared() with a literal "0LL"
   for the last argument, and these are removed as well as the
   corresponding 0-inc indefinite (upcr_add_psharedI()) calls that
   were illustrated in the issue tracker.