Adding support for block-based enumeration. This fixes some lifecycle bugs with the existing NSFastEnumeration implementation.