Adding some of the changes in r21346, r21402, r21455, r21459 and r21549 (bulkComms).

[This work was done by Rafael Asenjo and Alberto Sanz, with contributions
 by Sung and Vass.  I am commiting it on their behalf. Reviewed by Vass.]

* In DefaultRectangular.doiBulkTransfer() there was a bug that did not
  show up until we added a new test OtherLocaleTest.chpl (r21346).
  The "Case 3" in doiBulkTransfer is only needed when the function is
  called from a locale that differs from the locale of the source
  array and the destination array. The problem was that the argument
  "count" passed to the function was not used correctly because a
  brand new "count" array was unnecessarily defined. Fixed. While
  here, we also changed "var" to "const" where appropriate.

   modules/internal/DefaultRectangular.chpl

* We had been using DefaultRectangular.dsiReindex() to normalize the blk
  field of array slices we use internally for bulk comm. But
  dsiReindex creates a new object that we really don't need and that
  we have to delete afterwards.

  Instead, we factored out the code lines we need from dsiReindex into a new
  function, adjustBlkOffStrForNewDomain(), that does not allocate a
  new object but does the computation we need to get the right blk value.
  dsiReindex() invokes adjustBlkOffStrForNewDomain(), to avoid
  duplicating that code.

   modules/internal/DefaultRectangular.chpl

* All our previous calls to dsiReindex have been substituted by
  adjustBlkOffStrForNewDomain in:
 
   modules/dists/CyclicDist.chpl
   modules/dists/BlockDist.chpl
 
* Enabling bulk for "_distribution" and "complex" data types. We have
  also tested that we can do bulk transfers for "object", but we
  currently do not check if any of the fields inside the object is not
  supported. Therefore, arrays of objects are still not supported.

   modules/internal/ChapelArray.chpl



git-svn-id: http://svn.code.sf.net/p/chapel/code/trunk@21931 3a8e244f-b0f2-452b-bcba-4c88e055c3ca