GROOVY-6863: Move many methods from Collection to Iterable.

These methods are added to Iterable.

grep(Object)
grep()
collect(Closure)
collect()
collect(Collection, Closure)
find(Closure)
find()
findResult(Object, Closure)
findResult(Closure)
findAll(Closure)
findAll()
containsAll(Object[])
split(Closure)
eachPermutation(Closure)
inject(Closure)
head()
tail()
asCollection()
plus(Iterable)
plus(Object)
multiply(Number)
intersect(Iterable)
toSet()
toListString()
toListString(int)

These methods are deprecated from Collection.

grep(Object)
grep()
collect(Collection, Closure)
find(Closure)
find()
findResult(Object, Closure)
findResult(Closure)
findAll(Closure)
findAll()
split(Closure)
eachPermutation(Closure)
inject(Closure)
inject(Object, Closure)
toListString()
toListString(int)

I also added this method.

DefaultGroovyMethodsSupport.createSimilarCollection(Iterable)

I did not move this method because Groovy static compiler has a bug and it is impossible to move.

inject(Object, Closure)