Integrating the Microsoft Internet Explorer driver implementation

This commit optionally allows the user to use the Microsoft-supplied
implementation of WebDriver for IE 11 and above. To use the Microsoft
implementation, the user must have the August 2014 updates to Internet
Explorer installed through Windows Update, and must install the IE Web
Driver Tool for Internet Explorer 11 download from Microsoft
(http://www.microsoft.com/en-us/download/details.aspx?id=44069).

Once those prerequisites are installed, the user can use the
InternetExplorerDriverService object in the language bindings to set the
implementation to be used.

By default, the driver will continue to use the driver implementation
developed by the open-source project. Over time as the Microsoft
implementation matures, this will be switched to use that implementation,
first by default, then exclusively.
Handle the case where a proxied element from PageFactory causes a FluentWait to timeout.

It's common for an ExpectedCondition to include a message containing the output
of "element.toString" in the friendly error message. In the case of a proxied
element created by the PageFactory, this will cause a NoSuchElementException to
be thrown, whereas we expect some string or another to be returned.

Handle this case.