extension sliceBy groups traversables by the resulting value of the given function, preserving positions.
E.g. 
> List(1,2,"a","b",4,5,6,"7","8").sliceBy {(x) => x.isInstanceOf[Int]}
 ((1,2),(a,b),(4,5,6),(8,9))