Feature/per device configs

This PR adds a major feature for v1.5: per-device configs.

* -d <device> switch, replaces -b switch
* ships with 'chrome', 'firefox' and 'safari' as default list of devices (we will add more - such as the SauceLabs browsers - in future PRs before 1.5 is released)
* devices can now be configured in their own config file, or in the main storyplayer.json config file

Behind the scenes, this PR also:

* tidies up / improves robustness of per-environment config-file loading
* ensures there's a story context before we run the startup cleaners
* no longer sets $env->envName; use $st->getEnvironmentName() to get this now. it was an undocumented legacy hack that needed to die
* fixes a bug that prevented us pointing a browser at file:/// URLs

The only thing to be aware of is that all the existing documentation for how to use SauceLabs is broken for the moment, and will need fixing before we release v1.5.