Handle property deletion in loop. Fix #92

Depends on #91 

This is done by checking if the property `key` we're acting on in the current iteration is still a property of the object and it wasn't deleted in previous iterations.

To sum up, here is what goes on:

1. Put the loop object in a tmp var.
2. Get the keys and place in a tmp var.
3. each iteration will check the keys length.
4. if we still have more keys we pop one off and put it in a tmp var.
5. check if the current is a member of the loop object via `in` operator.
6. Assign key object to the user's variable.