Make it possible to re-use a runner when calling GeckoInstance.start() because
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
or handle a timeout if it for some reason did not exit as expected.
add restart/shutdown support for marionette
add marionette restart/shutdown tests for sessionstore