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)