Make it possible to re-use a runner when calling GeckoInstance.start()

When creating a new runner we always also create a new profile. We need to be
able to re-use profiles in order to support shutdown/restart tests.

Additionally, we need to be able to specify additional arguments when launching
Firefox (again), e.g. '-private-window' to make Firefox start with only a
single private window, as is prominently exposed on Windows.
Add GeckoInstance.wait() to enable us to block until the process has terminated

We can use this to wait until the process is gone or just kill it if it's still
alive after a given timeout.
add restart/shutdown support for marionette
Bug 923606 - Add Marionette tests to cover startup/shutdown paths