port & skipExtensionInstallation for SafariOptions

port to be used in SafariDriverServer
skipExtensionInstallation to be used for providing
backwards-compatibility and allowing the user to
not install any extensions at all (thus keep existing
extensions in the browser).

Created method to generate options from given capabilities.

Moved around some methods to be consistent (options are sorted
alphabetically within a section)
SafariDriver using SafariOptions API

Modelled after Java's ChromeOptions, .NET's SafariDriver* API format.