fixes #1475 bug with pattern observer validation

As noted in #1475, pattern observers behave wonkily if you use them to validate inputs. That's because the pattern observer's hash of values (which it uses to determine whether to call the callback) is only updated *after* the callback is called - so if it calls itself recursively (i.e. `this.set('foo',validated)`), on blur it thinks nothing has changed, and so the validation never happens. This fixes that bug