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).
can we do this with an `if (definition.collection) { ... } else { ... }` instead of the ternary operator? It's just a bit easier on the eyes