Correcting reversed logic in port assignment for .NET SafariDriver's
WebSocket server

Fixes issue #5141.
Fixing 1px precision of visibility calculation for a child of an element
with overflow hidden. Fixes issue 5140
Fixing ByteBuffer to byte array conversion to get rid of trailing null
bytes.
JariBakken: Alert#text should raise on closed alert.
Fixing a test that opens a new window: switch to this window, close it and
switch back to the original window. Otherwise IE changes "default window
size" and all the following tests run in a small window.
Ignoring a test for HtmlUnit (window switching is not implemented)
Code linting (removed unused imports, local variables, fields, debug
messages). No functional changes.
Deleting duplicated content of a test page
Adding more diagnostics for failed HTTP requests in .NET bindings

This is an attempt to help diagnose the root cause of issue #3719. Please
note that it makes no effort whatsoever to "fix" the issue. This is simply
hoping to provide more information for those who have run into that issue,
and see if all occurrances have the same root cause.
Read files using an api from guava libraries to let us delete some code.
Add some function definitions required for Selenium emulation.
Update WebDriverJS to support parallel flows. Documentation to follow in a future
update to the WebDriverJs wiki page.

This change renames several low-level classes and functions in the promise module:

  promise.Application                                 -> promise.ControlFlow
    #schedule(string, function)                       ->   #execute(function, [string])
    #scheduleTimeout(string, number)                  ->   #timeout(number, [string])
    #scheduleWait(string, function, number, [string]) ->   #wait(function, number, [string])

The old schedule* functions are still present, but will print a warning message if called.
They will be removed in 2.31.

This change also renames the //javascript/node:webdriver target to
//javascript/node:selenium-webdriver. We will soon publish the module to npm as
"selenium-webdriver".

Fixes issue 4640.
Update the prebuilt SafariDriver
Fixing a bug introduced by a change in how we get already logged messages from the console service in firefox. This allows us to function with firefox 19
(On behalf of AmitayDobo) Storing a weak reference to the current frame to
be able to restore it without switching to the top in the case of "lost
DOM". Fixes issue 4876
Cleaning up imports. No logical changes.
Removing a trailing "?"-symbol in the end of the URL (IE6 and Chrome add
it when one does window.location = window.location)
Fix how we wrap the global timing functions to work with IE.
Another attempt to restore window from a weak reference to either a frame
or a window, in hope to make it work in FF10 (newer versions are ok)
Reverting my previous revert and moving to bouncycastle 1.48. Fixing issue #3498!