Fix case where binding to undefined leaves the iterator binding collection defined

### Issue

If you bind to some data, then switch it to undefined, then switch it back, nothing is rendered. This is due to the iterator binding leaving `@collection` set to the original data when it becomes undefined.

### Fix

Set `@collection` to an empty array if the data is not defined.

@SoapyIllusions for a quick review