Initial merge of @TailRecursive into groovy-core