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
Why would it break interpolation? `['foo', undefined, 'bar'].toString() === 'foobar'`