Fixes to some bugs exposed by NUMA work in Loop Invariant Code Motion 

[Original patch reviewed by Sung, slightly updated patch by David.]

- I missed setting an alias in one direction: If lhs aliases rhs I
  said lhs aliases rhs, rhs alises lhs, and lhs aliases rhsAlises, but
  I wasn't setting that the rhsAliases alias the lhs
 
- When a "class" is passed into a function, I wasn't assuming the
  fields were changed. I thought I was already doing this, but I guess
  not. I'm actually kinda surprised this didn't cause more issues in
  other places.  

- Corrected an assumption that the lhs of an alias was always the
  first expr in the callExpr (This isn't true for for
  PRIM_SET_MEMBER.) 

- If a field of a class is changed, the field and the class need to
  marked as having been changed. Note that this isn't really true for
  actual classes, but for records. For instance if you have a.b = 4,
  then c = a, you need to note that a has been changed. Currently this
  assumption is made for all "classes" but will be updated to only do
  this for records as for classes the pointer won't actually have
  changed. 

- A few minor updates/additions to the debug statements 

I'm using "class" to denote class, record, or union, and class to
denote a real chapel class. 


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