add GameLoopHtml.onVisibilityChange to be similar as Fullscreen

May be api for Visibility, Fullscreen, PointerLock should be refactor to follow same api : 
* flatten in GameLoop like Fullscreen
* delegate into a instance like PointerLock with : 
  * enable
  * onChange
  * value (active / inactive)