Add failing test for observing isDirty.
Make isDirty observable

We've removed the custom dirty tracking behavior because it wasn't possible to support this API while having isDirty observable. If this is a big issue for someone, please get in touch.