test(e2e): fix by.binding() locators

After upgrading, Protractor requires exact string that is used in the binding.
refactor($compile): $$addBindingInfo accepts single expression or an array

Instead of knowing about `.expressions` property, it just accepts a single expression or an array of expressions.
refactor: remove doReload arg used only for testing

We run unit tests in “strict” mode and thus can’t monkey-patch `window.location` nor `window.location.reload`. In order to avoid full page reload, we could pass location as argument, or another level of indirection, something like this:
```js
var ourGlobalFunkyLocation = window.location;
function reloadWithDebugInfo() {
  window.name = 'NG_ENABLE_DEBUG_INFO!' + window.name;
  ourGlobalFunkyLocation.reload();
}

// in the test
ourGlobalFunkyLocation = {
  reload: function() {}
};
reloadWithDebugInfo();
ourGlobalFunkyLocation = window.location;
```

I don’t think any of these make sense, just so that we can test setting `window.name`. If the `reloadWithDebugInfo` function was more complicated, I would do it.

I don’t think it’s worthy to confuse production code with extra logic which purpose was only to make testing possible.
refactor($compile): $$addScopeInfo always expects jq wrapper

`$$addScopeInfo` used to accept either DOM Node or jqLite/jQuery
wrapper. This commit simplifies the method to always require
jqLite/jQuery wrapper and thus remove the `element.data` condition which
was wrong. If `element` was a raw comment element, the `data` property
was a string (the value of the comment) and an exception was thrown.
refactor($compile): rename element -> $element

To follow our convention (at least in this file): if it’s
a jqLite/jQuery wrapper than the variable name starts with `$`.