controller: fireChanges() returns a Promise[controller, key]
controller: fireChanges() returns a Promise[controller, key]

Don't forget to update documentation

This is useful when async calls occurred when changing the model and autosave is enabled, in this case the code must call network so the call is async.

In normal cases changing the model is synchronous but when autosave, it is async.
The problem was arised when trying to call input.focus() after changing a model. The async version works

See the iridium TODOMVC example in the controller.edit() function
Example:

```javascript
// normal use
model.set(key, val)
doWhatever(...)//but no gui changes like focus because the thread is still there before the reflow

//if autosave enabled and not session or localstorage, and not input focus or similar after setting value
model.set(key, val)
  .then([controller, key] => doWhatever(...))
```

angelrego/iridiumjs,angelrego/iridiumjs