Minor: listen to "unstarted" event instead of "cue" event

We were using cue event to know when player changed video without page
reload (to update playback quality). However cue does not cover every case
of it while "unstarted" event does.
Minor: we made sure that interval will be cleared once player is
destroyed

This is rather rare case when player will fail to set desired quality and
therefore interval is never cleared and keeps trying. This may occur with
the oldest YouTube player (AS2).
New: onYouTubePlayerReady now also looks up player by ID passed in args

onYouTubePlayerReady is (usually) run twice; once with string ID of player
and with the player (as an object) at the last. If we dont ignore player
ID case we can cover the rare case when player object is never passed to
the function.