Refactored the selection of options to use the webdriver API

Using the webdriver API instead of a JS script has several benefits:

- it uses the native event instead of triggering our own change event
- as the logic is implemented in PHP, we can split it into smaller private methods instead of having 1 big script
- it is easier to handle errors in case of invalid option being selected (the previous code is ignoring things silently. The new code fails at the WebDriver level so you know the option does not exist)
- ``setValue`` can use the private methods directly instead of going through the public ``selectOption``, thus avoid the duplicated XPath query and precondition checks.

As reported in https://github.com/Behat/Mink/issues/545 the handling of radio buttons is wrong in the driver. The refactored code has the same behavior than the previous one. Fixing it will be kept for a separate PR (done after adding new tests in Mink).
The move to webdriver will also make this fix easier as I'm not fan of locating all radio buttons of the group in vanilla.js (the DOM API does not have an easy way to get them)

Btw, I'm glad I merged the XPath Escaper into Mink 1.6 as I'm using it here.