[WIP] Use scope.watchAST instead of scope.watch

Fixes #1110
in AngularJS, we can denote parsed expressions as constant, which instructs them to be unwatched after they're first evaluated.

I'm not sure if there's a similar mechanic in angular.dart, but it seems reasonable that it should behave similarly. (note: currently, AngularJS won't treat a parsed empty string as a constant expression, and the returned function is basically a noop, returns undefined --- so maybe null in dart?)