Chunk function to return an Iterator of Iterable chunks

 Takes an iterable and chunks it into the specified size.

 This function is lazy in that it yields each chunk as a generator
 which when iterated will yield size times or until the iterator is
 no longer valid

 Examples:

      iter\chunk([1, 2, 3], 2)
      => iter(iter(1, 2), iter(3))