[IR] Remove for-loop special case treatment except for IRBuilder

* This patch eliminates all the nasty for-loop special case checks
  by adjusting variable scope depth in the IRBuilder by adding
  +1 to what the AST gives us to make for-loop closures look like
  normal scopes, and pushing dyn-scopes for them at runtime.

  This lets them work as before, but without the messy conditional
  logic in scopes.

* Needed some cleanup and tweaks to variable allocation methods in
  IRScope and children.

* But, test results are same as before: 10 failures, 3 errors.