Update grid for change in behavior of WebDriver's new session command from revision 8c3c65772d57.

With this change, ./go clean test_grid passes.
Remove unused imports
Implementing a new crazyfun boolean option 'ipv4only' to force java to use
IPv4 network stack
Implementing ability to run grid e2e test with any browser specified by
gridTestBrowser crazyfun option. This should allow running grid tests on
CI server.
Simplifying a test setup code
Refactoring IE driver to use enhanced StringUtilities methods.
CPP linting. Removing global inclusion of std namespace.
Refactored BrowserFactory class to use member variables.

Previously, most functionality was passed into the methods of the
BrowserFactory, breaking the principle of encapsulation. This change
also moves the ability to force the use of the Windows CreateProcess
API and to pass command-line parameters to the CreateProcess API to
capabilities of the IE driver, rather than arguments passed via the
command line of IEDriverServer.exe.
Moving .NET IE driver command-line args into capabilities.

This is to sync up the .NET bindings with 2.33.0.7 of IEDriverServer.exe.
Updated proxy.py to use no_proxy parameter, and updated proxy_tests.py with test that fails if no_proxy is ignored.

Signed-off-by: Luke Inman-Semerau <luke.semerau@gmail.com>
Adding ability to set external GhostDriver implementation in .NET bindings

Previously, it was not possible to set the path to the GhostDriver
JavaScript implementation in the .NET bindings; the user was forced to use
the implementation embedded in the PhantomJS executable. This change now
mimics the Java language bindings in functionality.
Remove handling of create-forceprocess and ie-switches arguments.

It supports changes from revision c6d0a96a1153 which
moves CreateProcess WinAPI and IE CLI switches support from
arguments of IEDriverServer.exe to capabilities.
Minor code cleanup and improvements

1. improve trace logging messages
2. add and use StringUtilities::ToWString(long) in ExecuteAsyncScriptCommandHandler
3. make Script::ExecuteAsync more predictable at parallel execution
flick is supposed to pass xspeed (not xSpeed) on the wire
Fix preference setting for manual proxy at firefox_profile.set_proxy()

Currently proxy in format '<domain>:<port>' is expected.
This format is defined at JsonWireProtocol#Proxy_JSON_Object
and implemented in another language bindings.

Method firefox_profile.set_proxy() is deprecated but
it's still used as example at browsermob-proxy-py help.
Update code for setting proxy in firefox_profile.

1. fix misprint in _set_manual_proxy_preference
2. fix settin preferences in case of PAC proxy type
3. add tests for firefox_profile.set_proxy
Fix hang of hub when node machine is not available.

This is happened because of:
1. before session creation an proxy may be checked for availability -
http client used for this check has too big connection and socket timeouts.
2. before node is became down/unregistered a node is checked for avaialability twice -
http client used for this check has too big connection and socket timeouts.

As result under the load if node machine is not available
it leads to that hub may hung up at processing new session requests.

Done:
1. grid http client is customized to accept socket and connection timeouts.
2. new hub configuration setting 'downPollingLimit' is available -
defines number of tries to get node status after which node is marked as down.
Default value is 2.
3. new hub configuration setting 'nodeStatusCheckTimeout' is available -
defines socket and connection timeouts which are used during checking of availability.
Default value is 0, which means that default values from grid http client will be used:
for connection timeout - 120sec, for socket timeout - 3hours.
4. unify and cleanup code, improve logging
5. set up socket and connection timeout to value of 'browserTimeout' preference
for http client which is used for requests to node.
6. update e2e grid tests

After these changes user can define the following intervals:
* time of checking node status - by 'nodeStatusCheckTimeout' setting,
* time of notavailable node marked as down - by 'downPollingLimit',
'nodeStatusCheckTimeout' and 'nodePolling' settings.
It is around of downPollingLimit * (nodeStatusCheckTimeout   nodePolling) milleseconds.
* (after node is marked as down) time after that node is unregistered from hub -
by 'unregisterIfStillDownAfter' setting.

This should fixes issue #5942.
Add sleep after accepting and dismissing alert.

In some situation IE closes alerts window too slow
and this leads to next action on window fails with E_NOINTERFACE code, e.g.
executing script failed with '-2147467262 [No such interface supported]'.

Fixes issue 4108.
Improve code and checks in e2e test.

1. move some help code into function
2. add checks before start test for CrashWhenStartingBrowserTest
Fall back to a loopback address if the current machine does not have an external IP address (as will be the case when there is no internet connection).

Fixes issue 5958