Prevents duplicate notifies on the '[]' property. While most array-like objects are careful to call both enumerableContentDidChange and arrayContentDidChange together, some of them failed to wrap these to calls in beginPropertyChanges/endPropertyChanges, because both of these calls notify that the '[]' property has changed.

Instead, we will use arrayContentDidChange to call enumerableContentDidChange itself, which makes coding the array-like objects easier/faster and prevents the serious problem that '[]' observers are fired twice in a row (was a problem of SC.ChildArray).
Removes SC.ManyArray backing datahash array observers. Previously, the datahash's storeIds array was observed, but this adds the observable properties to it, which in effect alters the array. This is now prohibited and all access must be done through the proper KVO channels on the ManyArray or by setting the property on the inverse record.

Fixes #715