Enhancements to the PhantomJSDriverService to support passing command-line arguments to PhantomJS.exe

Changed driver service properties to use non-nullable types, added JSON.NET serialization properties to embed knowledge of PhantomJS command-line argument default values, fleshed out driver service unit tests, and made processing of command-line arguments dynamic based on PhantomJSDriverService property reflection, easing addition of new arguments in the future.