feat(parse): ability to bind once an expressions

Expressions that start with `::` will be binded once. The rule
that binding follows is that the binding will take the first
not-undefined value at the end of a `$digest` cycle.

Watchers from `$watch`, `$watchCollection` and `$watchGroup` will
automatically stop watching when the expression(s) are bind-once
and fulfill.

Watchers from text and attributes interpolations will
automatically stop watching when the expressions are fulfill.

All directives that use `$parse` for expressions will automatically
work with bind-once expressions as long as they are evaluated
over a `$scope`. E.g.

```html
<div ng-bind="::foo"></div>
<li ng-repeat="item in ::items">{{::item.name}};</li>
```

Have fun

benchmark: http://plnkr.co/edit/rJOqa0oh35Y0xBhTYZ6w?p=info
design doc: https://docs.google.com/document/d/1fTqaaQYD2QE1rz-OywvRKFSpZirbWUPsnfaZaMq8fWI/edit#