The category support for "each" and so on doesn't really work

If the invoked method runs anything synchronously, and that includes a call to "each", then CpsDefaultGroovyMethods
end up getting used, which is not what we want.

One case where this happens is:

  @NonCPS
  void foo() {
     def sum = 0;
     [1,2,3,4].each { sum+= it; }  // <- we expect this to execute synchronously
     return sum;
  }

  // CPS-transformed function
  void bar() {
    foo();
  }

Another situation where this happens is when GroovyClassLoader decides to load other groovy scripts as classes,
as much of the Groovy compiler is implemented in Groovy.

This change breaks the following code:

  // CPS-transformed function
  void bar() {
     def sum = 0;
     [1,2,3,4].each { sum+= it; }
     assert sum==10;
  }

... because 'sum+=it' ends up getting CpsCallableInvocation and skips the loop. So I have to come back to this fix later.
Redone the CPS-aware 'each' method

Category kicks in automatically for every indirect call that happens within CategorySupport.use(). This includes such things like
workflow script accessing another class, which triggers GroovyClassLoader to load a script, which results in groovy compiler executing.

So we need to be very careful with which 'each' method should execute synchronously vs asynchronously.

This is not very easy to do, and after thinking about this, I think the best approximation is to have the CPS method call site
records what method it is about to invoke, so that the method invoked can test if it was directly called from a CPS method call site.

This ignores all the weird call routing that Groovy does (for example, "o.each" would work but not "o.invokeMethod('each')"),
but it is sufficient to pass the test cases pass, and so an OK implementation for now.

If we decide to revisit this in the future, perhaps another option is to speculatively execute the passed in closure synchronously,
and if we see the magic CpsCallableInvocation exception, switch to executing the rest in async function by decorating Continuation.
[maven-release-plugin] prepare release groovy-cps-0.7