Initial fun for Array iterator.

We are missing yet:

1. The special key+value return value (which I haven't seen in action anywhere yet, but still documented in the spec)
2. Plugging it into the Array @@iterator call.

I expected to send this request yesterday, but was too tired and forgot ;(

can drop key and keyvalue from here with the enum change