Implement `_was` and `changes` for in-place mutations of AR attributes

does `reload` make a difference here? should there be assertion both before and after reload?