Adds an 'apply_changes' method to the model.

'apply_changes' takes any pending changes and applies them to the
model and clears them. Subsequent changes will be based on this
now-current set of properties.