feat(compile): add human readable alternative to '@=&?'

support using `interpolate:<name>`, `bind:<name>`, `eval:<name>` and `bind:optional:<name>` instead of `@<name>`, `=<name>`, `&<name>` and `=?<name>`

Closes #9125
The above checks are incorrect (not just the new "verbose" ones, but the old ones as well).
We are checking against `componentScope.optRef[XYZ]`, but it will always be undefined, because there are no such properties on `componentScope`. We should be checking against `componentScope.optref[XYZ]` (notice the lowercase `r`), because these are the properties that will eventually get values, so these are the one we want to ensure are `undefined` before `$rootScope.name` gets a value assigned.