Place iterator tag in the correct position in an iterator argument list.

Related to the calling user default constructors, I noticed that the tag argument is
placed at the head of the argument list when the compiler generates a call to an iterator
in the expansion of PRIM_TO_LEADER and PRIM_TO_FOLLOWER primitives in preFold().  This
violates another assumption in the compiler -- that the method token always appears first
in an argument list if it is present.  So I moved the tag argument to the end of the
argument list, where it belongs.

To ensure that we can use this heretofore implicit invariant to advantage in the future, I
made it explicit by adding a clause to CallExpr::verify().

Aside from enabling further steps toward calling user default constructors, this patch
means it is no longer necessary for the compiler to insert an order wrapper to move the
out-of-order iterator tag argument into the right position.  As a result, the required AST
size diminishes.  On studies/jacobi.chpl, the AST size after resolution falls from 
157563 asts (17450K) to 157407 asts (17433K).

[tested on / (--verify)]
[reviewed by noakes]


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