Batch iterator

Following #23, this PR changes iterators so they work on key batch only, effectively forcing the user to think of complexity.

Since iterating with arrays is only one line whereas iterating with iterators is a double loop (one for the batchs, one for the keys), using the array API is simpler by design. When using the double loop, the programmer knows why: he is chunking the key access on very large collections.