[ChromeDriver] Expand Capabilities for W3C compliance

This CL is one step in making InitSession command W3C compliant.
It expands Capabilities object to include all capabilities that are
specified in the W3C spec. Changes include:
* Re-ordered fields in Capabilities into W3C section and ChromeDriver
  specific section. Entries in W3C section are listed in the same
  order as they appear in W3C spec.
* Added browserName, browserVersion, and platformName capabilities.
  They will be needed for proper firstMatches handling.
* Added fields needed for timeouts capability. Parsing and using of
  these fields will be added in an upcoming CL.
* Replaced legacy name unexpected_alert_behaviour with W3C-compliant
  name unhandled_prompt_behavior.
* Modified Capabilities::Parse to accept all capability values,
  including those not yet supported by ChromeDriver. Added another
  method Capabilities::IsSupported to check for unsupported options.
  This is needed for upcoming W3C-compliant capability validation.

Bug: chromedriver:1997
Change-Id: I5f53341cf47f77a1853f40028b1efe6f0b69c611
Reviewed-on: https://chromium-review.googlesource.com/1241213
Commit-Queue: John Chen <johnchen@chromium.org>
Reviewed-by: Caleb Rouleau <crouleau@chromium.org>
Cr-Commit-Position: refs/heads/master@{#593989}
5 files changed