Mark ol.Observable.prototype.unByKey deprecated.

The ol.Observable.prototype.unByKey was supposed to handle removing of
listeners registered using `ol.Observable.prototype.on` and
`ol.Observable.prototype.once`.

However, the underlying google library code called by unByKey only requires
the key, not the `ol.Observable` object on which the registration was
triggered. Moreover, this method was unconvenient and in practice misused.
Example or real world code:
```javascript
var map = new ol.Map();
var key = map.on(listener);
view.unByKey(key);
```

A function was added in #2794, in particular to fix this kind of code.

This PR pushes forward the removal process of the old method in favor of the
unByKey function by marking it `@deprecated` and pointing to the right
usage.

Please merge when deemed appropriate.
Deprecation is an essential tool for guiding users to the correct usage.
Removal of obsolete code is also essential for clarity.

This PR is the normal step before removal, why would it be overkill?

Are we going to remove the obsolete method wihtout marking it
`@deprecated`? So why not now, when fewer users are impacted?

I am really surprised about the reaction.