Safari support

@nburwell - I added configurable browser support.  Please review and accept.
Just to confirm, "browser" is a new top level config param, and looks like it is required or there will be a nil exception? Is it worth guarding against that so that the `|| Chrome` part will be reached even have `browser` in your config (otherwise I think we should just make it required that you choose a browser name in your config and simplify this line).