Move collate() and permutations() from List to Iterable

I added collate() to Iterable, and moved permutations() from List to Iterable.
This patch depends and related to https://github.com/groovy/groovy-core/pull/444 , which moves methods from Collection to Iterable.

I think the current Groovy static type checker for generics is a little bit broken,
I cannot and did not fix the static type checker test.