rewrite controls using one render loop

The underlying logic in controls is now changed. 

Rather than relying on timeouts and forced renderings, the controls now have their own render loop. Of course, this does not mean the play button will get redrawn 60 times per second - the controls' canvas is touched only when the controls' _state_ is changed (e.g. when the player state changed, or if the mouse moved across the play progress).

As the controls rely now on player's `S_CHANGE_STATE` event, all the `.render()` and `.forceNextRedraw()` calls became redundant and so were removed.

Also, the controls are shown/hidden _really_ smoothy now :-)

Please see the code comments for some additional coverage of the changes.
I found some new information about several `requestAnimationFrame` calls on a page and seems it is (really?) better to find a way to use a single `requestAnimationFrame` for all the rendering. In separate from this PR, of course, and, same way, all Player instances should be rendered during one request, which is also not true now.