introduce a more efficient mutable list for Enum.force and Enum.take 

Use unrolled mutable lists to store elements of a forced BatEnum.t; it should take less memory on big enumerations. Also added some tests for BatEnum.take and BatEnum.force.