Adding ability to set additional ChromeOptions in the .NET bindings

This allows the ability to set user profile preferences and local state
preferences using the ChromeOptions class. The new
AddUserProfilePreference and AddLocalStatePreference methods correspond to
the "prefs" and "localState" capabilities documented in the chromedriver
documentation. Note that the values passed in to these methods must be
JSON-serializable, and no validation is done on these values at present.
We now also allow setting the "detach" capability, which allows the user
to specify that Chrome remain running after chromedriver.exe has quit.

This commit also removes legacy code for the obsolete chrome.binary and
chrome.switches capabilities, and changes the command line arguments to
chromedriver.exe to include two hyphens, instead of one (e.g., "--silent"
instead of "-silent").