Misc changes

Here's a bunch of individual commits (you may not want all of them -- feel free to cherry-pick specific ones)

Notably, a bug is fixed with async (ajax) "save" methods, when people manually call `this.next('save')` in their callback. Basically, the `changed`/`modified` flags were getting reset upon the *completion* of the save method (when the AJAX response arrives) which means that any changes made between the start of the save and the completion of the save wouldn't trigger an additional call to save().