Refactoring of Proxy setting handling in IE driver

We no longer need to replace the window procedure to accomplish setting
the proxy on a per-process basis, simplifying the process considerably.
This commit also modifies the ProxyManager class to let it build the proxy
setting string instead of prebuilding it in the new session command
handler. Finally, this commit allows the proxy settings to be passed back
to the language bindings via the return from the getSessionCapabilities
command handler.
Introducing ability to clean browser cache before launching IE.

This commit introduces the ie.ensureCleanSession capability, which will
clear the browser cache, history, and cookies before launching IE. When
using this capability, be aware that this clears the cache for all
running instances of Internet Explorer. Using this capability while
attempting to run multiple instances of the IE driver may cause unexpected
behavior. Note this also will cause a performance drop when launching the
browser, as the driver will wait for the cache clearing process to
complete before actually launching IE.
Removing StringUtilities methods to create strings from longs.

The C++ standard type libary already provides std::to_string() and
std::to_wstring() for this purpose.
Added error checking in DocumentHost::GetPageSource.

Fixes issue #5967.
Adding support for ie.ensureCleanSession capability to .NET bindings.

The .NET bindings do this by means of the EnsureCleanSession property on
the InternetExplorerOptions object. When set to true, this property
instructs the IE driver to clear the system cache for all instances of
Internet Explorer, even those already running when the driven instance is
launched, so care should be used when setting this property. The property
defaults to false.