JS update

I am sorry for breaking the tests, but the spinner is one tough enemy :)

* figured out the proper spinner detection (lightbox zoomed widget had made spinner_div to appear visible although it was not)
* moved whole spinner detection into JavaScript (faster)
* added "library file" that we can put our JS shortcuts in to not pollute python source.
* slight code cleanup (always use module's `execute_script`)
* fixed widget's footer getter (did not properly react on `Never` state)
It's up to you, the functionality's fine either way, which you can tell because I'm commenting on readability. :)