feat($compile): allow $watchCollection to be used in bi-directional bindings

an asterisk can be specified in the binding definition to use $watchCollection instead of $watch.
e.g. scope: { prop: '=*' }

Closes #9725