Define a sensible default when selenium doesn't have one

WebDriver does not define the selenium.defaultTimeout variable, and
returns an empty String when asked for it. In turn, Long.valueOf("")
throws an Exception, so to avoid this whole thing, set a reasonable
value for it in the first place.
Support for different selenium implementations

Allows (actually requires) the client to specify the Selenium Builder
implementation to use.