BREAKING CHANGE: The current refactoring is breaking and changes `onUnexpectedShutdown` property to a function, which accepts a handler that is invoked by the driver when it gets shut down unexpectedly
* add executeDriverScript route, command, tests
* allow driver scripts to write and collect console logs
* ensure driver script protocol is set to same protocol as driver, and also includes all appium commands
* implement isFeatureEnabled to check for insecure feature
* add tests for isFeatureEnabled
* update feature flag name to match style of other flags
* add ensureFeatureEnabled method for use by other drivers
* move driver script execution into a child process so we can kill it if necessary
* use this.opts.address instead of this.opts.host
* ensure driver script timeout is a number in the child proc as well
* ensure we get webdriverio without issues
* If`executeCommand` returns an object that has a property 'protocol' and either a 'value' property or an 'error' property, respond with the provided protocol
* If the object is of this form, than it came from another driver that knows what protocol is being used so we re-assign the protocol to whatever was reported
* Added to delay in the 'unexpected exits' test because I was getting a race condition