Permutation + bugfix

new feature
- use query to easliy build permutations

bugfix
- \#take used to iterate whole iterable in every case
You could use mockito's spy to do the same:
```
Iterable<Integer> spy = Mockito.spy(Lists.arrayList(1, 2, 3, 4, 5, 6, 7, 8, 9, 10));
...
verify(spy).iterator(); // only 1 iterator was created
...
```