allow providing more complex options to the drivers

- selenium driver can now take options (eg. firefox, custom timeout messages, etc)
- fixes up some of the phantomjs option feature