Allow C for loop operators to be user defined

Converts c for loops from:
  __primitive("C for loop", i, start, end)

to:
  __primitive("C for loop", initExpr, testExpr, incrExpr)

where init, test, and incr are either primitives or symExprs

This allows the relational operator to be user defined instead of forcing C for
loops to use <=.

To allow this we just update build.cpp to wrap the init, test, and incr exprs
with block stmts instead of buildling the init, test, and incr out of the
previous form and updating ChapelRange to create the init, test, and incr exprs
in the iterator.

Adds a function to AstUtil to check if a call is a relational operator and uses
that at codegen time to make the check for a relational operator reusable and
not just coded in codegen for c for loops.