refactor($parse): don't use bind-once interceptor for non-bind-once expressions

Side-effects:
  - Logic for allOrNothing watches now lives in $intercept rather than $parse

Closes #9958
seriously, we have turned a once-simple parser, and turned it into an extremely complicated mess. we should not have done this, this was not the right thing to do.