Add a check to ensure that all PRIM_YIELD primitives are removed from the tree after lowerIterators.
Add a new future to quiet recordBug/test_likepy.

Investigation of this bug shows that recursive iterator inlining is not being done
completely.  It should include translation of PRIM_YIELD primitives, and does not.
Workaround for translation bug that allows PRIM_YIELD to reach codegen.

Added the new function removeUncalledIterators() and a call to it at the end of
lowerIterators().  The new function looks for PRIM_YIELD calls that remain in the tree and
removes the functions that contain them.  The operative assertion is the if these
functions *had* been inlined by expandIteratorInline(), then the yields they contain would
have been replaced.

The correctness of this approach also relies on the more subtle assertion that the "dirty"
functions are not called directly.  In my investigation, I only saw the error case come up
when for loops were expanded within the body of _coforall_fn() helpers.  If such a
function contains a yield, it is expected that it will be called in the context of a for
loop, and will therefore be inlined.

Revised some comments, based on my improved understanding of what expandIteratorInline()
is doing.

While there, I cleaned up the interface to expandBodyForIteratorInline() by pushing the
collection of asts inside that function.  Since the function is called recursively, this
makes it clearer that the asts being traversed within eah invocation are merely the body
of the passed in iterator block (ibody).
Update test_likepy.bad, due to added check_afterLowerIterators().
Move declaration for flattenNestedFunctions into passes.h.
Merge branch 'quietTestLikepy' of github.com:hildeth/chapel into quietTestLikepy
Use a new strategy for sandboxing the recordBug/test_likepy future.

The idea of just removing functions that still contain yield primitives after the
lowerIterators pass doesn't pan out.  The target test case
  studies/madness/aniruddha/madchap/recordBug/test_likepy
still fails, this time with a segfault in the compiler.  Even though the function is
removed, there is still a call to it in the AST.  Duh.

In the new approach, invalid PRIM_YIELD primitives that remain in the tree after
lowerIterators has run are replaced by PRIM_INT_ERROR primitives.  This demonstrates that
the recursive iterator is actually called by the application, so it is actually important
to get the translation correct.

Updated the .bad file to match the (now very stable) runtime error message.

The actual fix is left as a future task.

This commit also improved comments a bit, and clarified the code by providing mnemonic
names for repeated "call->parentExpr" and "call->parentSymbol" expressions.
Merge branch 'quietTestLikepy' of github.com:hildeth/chapel into quietTestLikepy
Merge pull request #393 from hildeth/quietTestLikepy

Quiet studies/madness/aniruddha/madchap/recordBug/test_likepy

Added a new check_afterLowerIterators() function to ensure that all PRIM_YIELD primitives have been removed from the tree after the lowerIterators pass is complete.
This caused a number of tests to break, so I added a cleanup function removeUncalledIterators() at the end of lowerIterators() to remove the code that is triggering these errors.
Even this does not cure test_likepy, so I added a .future file to quiet the test.