Fix nested object change

Object.Prop1 changes
Object.Prop1 is being listened for changes, and when Prop1 changes, it causes Prop2 to change
Object.Prop2 change listener doesn't fire properly (it is caught in the buffer)

This is because the way Buffer is implemented internally, it Nexts out the buffer, then re-grabs the Close observable, so any changes created during that window are stuck until the buffer gets closed next time.

Replacing this with an implementation that uses a single observable for the buffer window close gets rid of this issue.