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

Allow an asterisk to be specified in the binding definition to use `$watchCollection` instead of `$watch`.
```js
scope: {
  prop: '=*'
}
```

This is a follow-up to #3491 but using `$watchCollection` as @IgorMinar [suggested](https://github.com/angular/angular.js/pull/3491#issuecomment-22274279).
Done. And sorry for being so careless about indentation; I'm used to having code formatting automated on save in my own projects.