jshint cleanups
jshint cleanups
jshint cleanups
jshint cleanups
Adds @konstantinbe 's additional tests from #279 and then added even more to check for proper observer clean up and different scenarios.
Adds some internal comments to aid future debuggers a bit.
Adds an '[]' observer to the array when an '@each.key' observer is used.  Previously, changes to the array's membership would noisily call propertyDidChange while setting up key observers on each additional item.  This change gets rid of this shotgun approach that resulted in multiple fires of the observer when adding multiple new items to the array.  It also fixes the problem that removing items from the array also failed to call a change to the array.

Closes #278 finally...