refactor(scope): watch "readOnly" arg renamed to "canChangeModel"

closes #739

This changes is a BC break:
- the "readOnly" parameter has been renamed to "canChangeModel",
- the semantic is inversed

Before:

    // Default to digest (readOnly = false by default)
    scope.watch(exp, fn);
    // Explicit flush
    scope.watch(exp, fn, readOnly: true);

After:

    // Default to digest (canChangeModel = true by default)
    scope.watch(exp, fn);
    // Explicit flush
    scope.watch(exp, fn, canChangeModel: false);

Closes #817