Check if all necessary Safari exist before starting session.

This prevents a situation where Databases directory does
not exist, which prevents the full load of Safari without
any meaningful error message. See #7933
Merge branch 'unreachable_safari_error'
Check if all necessary Safari exist before starting session.

This prevents a situation where Databases directory does
not exist, which prevents the full load of Safari without
any meaningful error message. See #7933

Signed-off-by: Luke Inman-Semerau <luke.semerau@gmail.com>
Allowinf to set an arbitrary platform capability even if it can't be converted to Platform enum. Non-standard platform values can cause matching issues on Grid, but they can be usable for third-party Grid implementations
Reorganizing C++ third-party dependencies

Also removes the now no-longer-used Mongoose source code.
Fixing race condition in handling unhandled exceptions. Fixes issue 3544
Cleaning up test code
[JS] Adding a bunch of tests for executeScript()
FirefoxDriver.executeScript should not define enumerable properties on script
arguments or return values.

Fixes issue 8128
FirefoxDriver's object annotations should be writable

Fixes the WDBS build
Removing all ignores for android and iphone
Reviving a commented out test
Removing reedundant annotations
Setting selenium runner on a long running test to be able to ignore it
Upgrading httpd.js to the latest version and fixing the error message on exit. Fixes issue 2637
Java 8 proof code.
'error: reference to assertEquals is ambiguous'
Allow Selenium to be built with a modern version of JNA, by implementing Structure#getFieldOrder.
Add goog.require()s for implemented interfaces.
This will become a compiler warning/error soon.
Setting actual IDE version
Implementing ability to run only tests that need local environment. Fixes issue 2884